From 5f7f8fa21ce831881b1133bfea1c7e8953445b6e Mon Sep 17 00:00:00 2001 From: extract Date: Sat, 9 Jul 2022 01:56:03 +0200 Subject: [PATCH 01/47] feat: add escape to UI this allows you to exit UI in Linux using Proton --- Code/client/Services/Generic/InputService.cpp | 48 ++++++++++++------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/Code/client/Services/Generic/InputService.cpp b/Code/client/Services/Generic/InputService.cpp index 5d48de0bd..19dbee273 100644 --- a/Code/client/Services/Generic/InputService.cpp +++ b/Code/client/Services/Generic/InputService.cpp @@ -97,6 +97,30 @@ bool IsToggleKey(int aKey) noexcept return aKey == VK_RCONTROL || aKey == VK_F2; } +bool IsDisableKey(int aKey) noexcept +{ + return aKey == VK_ESCAPE; +} + +void SetUIActive(auto& overlay, auto pRenderer, bool active) +{ +#if defined(TP_SKYRIM) + TiltedPhoques::DInputHook::Get().SetEnabled(!active); + overlay.SetActive(!active); +#else + pRenderer->SetVisible(!active); +#endif + + // Ensures the game is actually loaded, in case the initial event was sent too early + overlay.GetOverlayApp()->ExecuteAsync("enterGame"); + + pRenderer->SetCursorVisible(!active); + + // This is to disable the Windows cursor + while (ShowCursor(FALSE) >= 0) + ; +} + void ProcessKeyboard(uint16_t aKey, uint16_t aScanCode, cef_key_event_type_t aType, bool aE0, bool aE1) { if (aType != KEYEVENT_CHAR) @@ -203,12 +227,16 @@ void ProcessKeyboard(uint16_t aKey, uint16_t aScanCode, cef_key_event_type_t aTy if (!pRenderer) return; - const auto active = overlay.GetActive(); + auto active = overlay.GetActive(); spdlog::debug("ProcessKey, type: {}, key: {}, active: {}", aType, aKey, active); - if (IsToggleKey(aKey)) + if (IsToggleKey(aKey) || IsDisableKey(aKey)) { + if (active && IsDisableKey(aKey)) + { + active = true; + } if (!overlay.GetInGame()) { TiltedPhoques::DInputHook::Get().SetEnabled(false); @@ -216,21 +244,7 @@ void ProcessKeyboard(uint16_t aKey, uint16_t aScanCode, cef_key_event_type_t aTy // This is really hacky, but when the input hook is enabled initially, it does not propogate the KEYDOWN event else if (aType == KEYEVENT_KEYDOWN || (aType == KEYEVENT_KEYUP && !active)) { -#if defined(TP_SKYRIM) - TiltedPhoques::DInputHook::Get().SetEnabled(!active); - overlay.SetActive(!active); -#else - pRenderer->SetVisible(!active); -#endif - - // Ensures the game is actually loaded, in case the initial event was sent too early - overlay.GetOverlayApp()->ExecuteAsync("enterGame"); - - pRenderer->SetCursorVisible(!active); - - // This is to disable the Windows cursor - while (ShowCursor(FALSE) >= 0) - ; + SetUIActive(overlay, pRenderer, active); } } else if (active) From 1a88fae2c9006b812423beb4cc2f64d55c4dd0e9 Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Mon, 11 Jul 2022 10:32:49 +0200 Subject: [PATCH 02/47] fix: potential fix for actors not dying --- Code/client/Games/Skyrim/Actor.cpp | 7 ++++++- Code/client/Games/Skyrim/Actor.h | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Code/client/Games/Skyrim/Actor.cpp b/Code/client/Games/Skyrim/Actor.cpp index fc5d083bf..523990bde 100644 --- a/Code/client/Games/Skyrim/Actor.cpp +++ b/Code/client/Games/Skyrim/Actor.cpp @@ -538,9 +538,14 @@ void Actor::Kill() noexcept if (pExtension->IsPlayer()) return; - PAPYRUS_FUNCTION(void, Actor, Kill, void*); + // TODO: these args are kind of bogus of course + KillImpl(nullptr, 100.f, true, true); + // Papyrus kill will not go through if it is queued by a kill move + /* + PAPYRUS_FUNCTION(void, Actor, Kill, void*); s_pKill(this, NULL); + */ } void Actor::Reset() noexcept diff --git a/Code/client/Games/Skyrim/Actor.h b/Code/client/Games/Skyrim/Actor.h index fb39fc5f0..5cd1f36c6 100644 --- a/Code/client/Games/Skyrim/Actor.h +++ b/Code/client/Games/Skyrim/Actor.h @@ -146,7 +146,7 @@ struct Actor : TESObjectREFR virtual void sub_10B(); virtual void sub_10C(); virtual void sub_10D(); - virtual void sub_10E(); + virtual void KillImpl(Actor* apAttacker, float aDamage, bool aSendEvent, bool aRagdollInstant); virtual void sub_10F(); virtual void sub_110(); virtual void sub_111(); From aca40025032a4f69878d6e00439f9f8648a36d64 Mon Sep 17 00:00:00 2001 From: scomans Date: Sun, 10 Jul 2022 09:33:37 +0200 Subject: [PATCH 03/47] upgrade UI dependencies --- Code/skyrim_ui/.eslintrc.js | 316 + Code/skyrim_ui/package.json | 61 +- Code/skyrim_ui/pnpm-lock.yaml | 8779 +++++++++++++++++ Code/skyrim_ui/src/app/app.module.ts | 110 +- .../app/components/chat/chat.component.scss | 4 +- .../components/connect/connect.component.ts | 35 +- .../disconnect/disconnect.component.ts | 20 +- .../notifications.component.scss | 2 +- .../notifications/notifications.component.ts | 17 +- .../player-manager.component.ts | 14 +- .../server-list/server-list.component.ts | 70 +- .../components/settings/settings.component.ts | 162 +- .../src/app/services/client.service.ts | 126 +- .../src/app/services/mock-client.service.ts | 68 +- Code/skyrim_ui/src/polyfills.ts | 16 +- Code/skyrim_ui/src/styles.scss | 22 +- Code/skyrim_ui/src/styles/functions/rem.scss | 4 +- Code/skyrim_ui/tsconfig.base.json | 2 +- 18 files changed, 9474 insertions(+), 354 deletions(-) create mode 100644 Code/skyrim_ui/.eslintrc.js create mode 100644 Code/skyrim_ui/pnpm-lock.yaml diff --git a/Code/skyrim_ui/.eslintrc.js b/Code/skyrim_ui/.eslintrc.js new file mode 100644 index 000000000..c75777631 --- /dev/null +++ b/Code/skyrim_ui/.eslintrc.js @@ -0,0 +1,316 @@ +module.exports = { + 'env': { + 'browser': true, + 'node': true, + }, + 'extends': [ + 'plugin:@typescript-eslint/recommended', + 'plugin:@typescript-eslint/recommended-requiring-type-checking', + ], + 'parser': '@typescript-eslint/parser', + 'parserOptions': { + 'project': 'tsconfig.json', + 'sourceType': 'module', + }, + 'plugins': [ + 'eslint-plugin-import', + '@angular-eslint/eslint-plugin', + 'eslint-plugin-jsdoc', + '@angular-eslint/eslint-plugin-template', + 'eslint-plugin-prefer-arrow', + '@typescript-eslint', + '@typescript-eslint/tslint', + ], + 'root': true, + 'rules': { + '@angular-eslint/component-class-suffix': 'error', + '@angular-eslint/component-selector': [ + 'error', + { + 'type': 'element', + 'prefix': 'app', + 'style': 'kebab-case', + }, + ], + '@angular-eslint/contextual-lifecycle': 'error', + '@angular-eslint/directive-class-suffix': 'error', + '@angular-eslint/directive-selector': [ + 'error', + { + 'type': 'attribute', + 'prefix': 'app', + 'style': 'camelCase', + }, + ], + '@angular-eslint/no-conflicting-lifecycle': 'error', + '@angular-eslint/no-host-metadata-property': 'error', + '@angular-eslint/no-input-rename': 'error', + '@angular-eslint/no-inputs-metadata-property': 'error', + '@angular-eslint/no-output-native': 'error', + '@angular-eslint/no-output-on-prefix': 'error', + '@angular-eslint/no-output-rename': 'error', + '@angular-eslint/no-outputs-metadata-property': 'error', + '@angular-eslint/template/banana-in-box': 'error', + '@angular-eslint/template/eqeqeq': 'error', + '@angular-eslint/template/no-negated-async': 'error', + '@angular-eslint/use-lifecycle-interface': 'error', + '@angular-eslint/use-pipe-transform-interface': 'error', + '@typescript-eslint/adjacent-overload-signatures': 'error', + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/ban-types': [ + 'error', + { + 'types': { + 'Object': { + 'message': 'Avoid using the `Object` type. Did you mean `object`?', + }, + 'Function': { + 'message': 'Avoid using the `Function` type. Prefer a specific function type, like `() => void`.', + }, + 'Boolean': { + 'message': 'Avoid using the `Boolean` type. Did you mean `boolean`?', + }, + 'Number': { + 'message': 'Avoid using the `Number` type. Did you mean `number`?', + }, + 'String': { + 'message': 'Avoid using the `String` type. Did you mean `string`?', + }, + 'Symbol': { + 'message': 'Avoid using the `Symbol` type. Did you mean `symbol`?', + }, + }, + }, + ], + '@typescript-eslint/consistent-type-assertions': 'error', + '@typescript-eslint/dot-notation': 'error', + '@typescript-eslint/explicit-function-return-type': [ + 'error', + { + 'allowExpressions': false, + 'allowTypedFunctionExpressions': false, + 'allowHigherOrderFunctions': false, + 'allowDirectConstAssertionInArrowFunctions': true, + 'allowConciseArrowFunctionExpressionsStartingWithVoid': true, + }, + ], + '@typescript-eslint/explicit-module-boundary-types': [ + 'error', + { + 'allowArgumentsExplicitlyTypedAsAny': true, + 'allowDirectConstAssertionInArrowFunctions': true, + 'allowHigherOrderFunctions': false, + 'allowTypedFunctionExpressions': false, + }, + ], + '@typescript-eslint/indent': [ + 'error', + 4, + { + 'FunctionDeclaration': { + 'parameters': 'first', + }, + 'FunctionExpression': { + 'parameters': 'first', + }, + }, + ], + '@typescript-eslint/member-delimiter-style': [ + 'error', + { + 'multiline': { + 'delimiter': 'semi', + 'requireLast': true, + }, + 'singleline': { + 'delimiter': 'semi', + 'requireLast': false, + }, + }, + ], + '@typescript-eslint/member-ordering': 'error', + '@typescript-eslint/naming-convention': 'error', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-empty-interface': 'error', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-inferrable-types': [ + 'error', + { + 'ignoreParameters': true, + }, + ], + '@typescript-eslint/no-misused-new': 'error', + '@typescript-eslint/no-namespace': 'error', + '@typescript-eslint/no-non-null-assertion': 'error', + '@typescript-eslint/no-parameter-properties': 'off', + '@typescript-eslint/no-shadow': [ + 'error', + { + 'hoist': 'all', + }, + ], + '@typescript-eslint/no-unused-expressions': 'error', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/prefer-for-of': 'error', + '@typescript-eslint/prefer-function-type': 'error', + '@typescript-eslint/prefer-namespace-keyword': 'error', + '@typescript-eslint/quotes': [ + 'error', + 'single', + ], + '@typescript-eslint/semi': [ + 'error', + 'always', + ], + '@typescript-eslint/triple-slash-reference': [ + 'error', + { + 'path': 'always', + 'types': 'prefer-import', + 'lib': 'always', + }, + ], + '@typescript-eslint/type-annotation-spacing': 'error', + '@typescript-eslint/typedef': 'error', + '@typescript-eslint/unified-signatures': 'error', + 'arrow-body-style': 'error', + 'complexity': 'off', + 'constructor-super': 'error', + 'curly': 'error', + 'dot-notation': 'error', + 'eol-last': 'error', + 'eqeqeq': [ + 'error', + 'smart', + ], + 'guard-for-in': 'error', + 'id-denylist': [ + 'error', + 'any', + 'Number', + 'number', + 'String', + 'string', + 'Boolean', + 'boolean', + 'Undefined', + 'undefined', + ], + 'id-match': 'error', + 'import/no-deprecated': 'warn', + 'indent': 'error', + 'jsdoc/check-alignment': 'error', + 'jsdoc/check-indentation': 'error', + 'jsdoc/newline-after-description': 'error', + 'jsdoc/no-types': 'error', + 'max-classes-per-file': 'off', + 'max-len': [ + 'error', + { + 'code': 140, + }, + ], + 'new-parens': 'error', + 'no-bitwise': 'error', + 'no-caller': 'error', + 'no-cond-assign': 'error', + 'no-console': [ + 'error', + { + 'allow': [ + 'log', + 'warn', + 'dir', + 'timeLog', + 'assert', + 'clear', + 'count', + 'countReset', + 'group', + 'groupEnd', + 'table', + 'dirxml', + 'error', + 'groupCollapsed', + 'Console', + 'profile', + 'profileEnd', + 'timeStamp', + 'context', + ], + }, + ], + 'no-debugger': 'error', + 'no-empty': 'off', + 'no-empty-function': 'off', + 'no-eval': 'error', + 'no-fallthrough': 'error', + 'no-invalid-this': 'off', + 'no-new-wrappers': 'error', + 'no-restricted-imports': [ + 'error', + 'rxjs/Rx', + ], + 'no-shadow': 'error', + 'no-throw-literal': 'error', + 'no-trailing-spaces': 'error', + 'no-undef-init': 'error', + 'no-underscore-dangle': 'error', + 'no-unsafe-finally': 'error', + 'no-unused-expressions': 'error', + 'no-unused-labels': 'error', + 'no-use-before-define': 'off', + 'no-var': 'error', + 'object-shorthand': 'error', + 'one-var': [ + 'error', + 'never', + ], + 'prefer-arrow/prefer-arrow-functions': 'error', + 'prefer-const': 'error', + 'quote-props': [ + 'error', + 'as-needed', + ], + 'quotes': 'error', + 'radix': 'error', + 'semi': 'error', + 'space-before-function-paren': [ + 'error', + { + 'anonymous': 'never', + 'asyncArrow': 'always', + 'named': 'never', + }, + ], + 'spaced-comment': [ + 'error', + 'always', + { + 'markers': [ + '/', + ], + }, + ], + 'use-isnan': 'error', + 'valid-typeof': 'off', + '@typescript-eslint/tslint/config': [ + 'error', + { + 'rules': { + 'import-spacing': true, + 'whitespace': [ + true, + 'check-branch', + 'check-decl', + 'check-operator', + 'check-separator', + 'check-type', + 'check-typecast', + ], + }, + }, + ], + }, +}; diff --git a/Code/skyrim_ui/package.json b/Code/skyrim_ui/package.json index 4bcde2300..63cc279a8 100644 --- a/Code/skyrim_ui/package.json +++ b/Code/skyrim_ui/package.json @@ -13,32 +13,37 @@ }, "private": true, "dependencies": { - "@angular/animations": "^11.2.3", - "@angular/cdk": "^11.2.13", - "@angular/common": "^11.2.3", - "@angular/compiler": "^11.2.3", - "@angular/core": "^11.2.3", - "@angular/forms": "^11.2.3", - "@angular/material": "^11.2.13", - "@angular/platform-browser": "^11.2.3", - "@angular/platform-browser-dynamic": "^11.2.3", - "@angular/router": "^11.2.3", - "@fortawesome/angular-fontawesome": "^0.8.2", - "@fortawesome/fontawesome-svg-core": "^1.2.15", - "@fortawesome/free-regular-svg-icons": "^5.9.0", - "@fortawesome/free-solid-svg-icons": "^5.7.2", - "rxjs": "~6.5.5", - "tslib": "^2.0.0", - "zone.js": "~0.10.3" + "@angular/animations": "^14.0.5", + "@angular/cdk": "^14.0.4", + "@angular/common": "^14.0.5", + "@angular/compiler": "^14.0.5", + "@angular/core": "^14.0.5", + "@angular/forms": "^14.0.5", + "@angular/material": "^14.0.4", + "@angular/platform-browser": "^14.0.5", + "@angular/platform-browser-dynamic": "^14.0.5", + "@angular/router": "^14.0.5", + "@fortawesome/angular-fontawesome": "^0.11.1", + "@fortawesome/fontawesome-svg-core": "^6.1.1", + "@fortawesome/free-regular-svg-icons": "^6.1.1", + "@fortawesome/free-solid-svg-icons": "^6.1.1", + "rxjs": "~7.5.5", + "tslib": "^2.4.0", + "zone.js": "~0.11.6" }, "devDependencies": { - "@angular-devkit/build-angular": "^0.1102.2", - "@angular/cli": "^11.2.2", - "@angular/compiler-cli": "^11.2.3", + "@angular-devkit/build-angular": "^14.0.5", + "@angular-eslint/eslint-plugin": "^14.0.2", + "@angular-eslint/eslint-plugin-template": "^14.0.2", + "@angular-eslint/template-parser": "^14.0.2", + "@angular/cli": "^14.0.5", + "@angular/compiler-cli": "^14.0.5", "@types/jasmine": "^3.6.4", - "@types/jasminewd2": "^2.0.8", - "@types/node": "^12.11.1", - "codelyzer": "^6.0.0", + "@types/jasminewd2": "^2.0.10", + "@types/node": "16.x.x", + "@typescript-eslint/eslint-plugin": "^5.30.5", + "@typescript-eslint/parser": "^5.30.5", + "eslint": "^8.19.0", "jasmine-core": "^3.6.0", "jasmine-spec-reporter": "^6.0.0", "karma": "^6.1.1", @@ -50,8 +55,12 @@ "protractor": "~7.0.0", "query-string": "^6.14.1", "sort-keys": "^4.2.0", - "ts-node": "~8.3.0", - "tslint": "~6.1.0", - "typescript": "~4.1.*" + "ts-node": "~10.8.2", + "typescript": "~4.7.4" + }, + "pnpm": { + "overrides": { + "uuid@<7": ">=7" + } } } diff --git a/Code/skyrim_ui/pnpm-lock.yaml b/Code/skyrim_ui/pnpm-lock.yaml new file mode 100644 index 000000000..c6d6573c8 --- /dev/null +++ b/Code/skyrim_ui/pnpm-lock.yaml @@ -0,0 +1,8779 @@ +lockfileVersion: 5.4 + +overrides: + uuid@<7: '>=7' + +specifiers: + '@angular-devkit/build-angular': ^14.0.5 + '@angular-eslint/eslint-plugin': ^14.0.2 + '@angular-eslint/eslint-plugin-template': ^14.0.2 + '@angular-eslint/template-parser': ^14.0.2 + '@angular/animations': ^14.0.5 + '@angular/cdk': ^14.0.4 + '@angular/cli': ^14.0.5 + '@angular/common': ^14.0.5 + '@angular/compiler': ^14.0.5 + '@angular/compiler-cli': ^14.0.5 + '@angular/core': ^14.0.5 + '@angular/forms': ^14.0.5 + '@angular/material': ^14.0.4 + '@angular/platform-browser': ^14.0.5 + '@angular/platform-browser-dynamic': ^14.0.5 + '@angular/router': ^14.0.5 + '@fortawesome/angular-fontawesome': ^0.11.1 + '@fortawesome/fontawesome-svg-core': ^6.1.1 + '@fortawesome/free-regular-svg-icons': ^6.1.1 + '@fortawesome/free-solid-svg-icons': ^6.1.1 + '@types/jasmine': ^3.6.4 + '@types/jasminewd2': ^2.0.10 + '@types/node': 16.x.x + '@typescript-eslint/eslint-plugin': ^5.30.5 + '@typescript-eslint/parser': ^5.30.5 + eslint: ^8.19.0 + jasmine-core: ^3.6.0 + jasmine-spec-reporter: ^6.0.0 + karma: ^6.1.1 + karma-chrome-launcher: ^3.1.0 + karma-coverage-istanbul-reporter: ^3.0.3 + karma-jasmine: ^4.0.1 + karma-jasmine-html-reporter: ^1.5.4 + prepend-http: ^3.0.1 + protractor: ~7.0.0 + query-string: ^6.14.1 + rxjs: ~7.5.5 + sort-keys: ^4.2.0 + ts-node: ~10.8.2 + tslib: ^2.4.0 + typescript: ~4.7.4 + zone.js: ~0.11.6 + +dependencies: + '@angular/animations': 14.0.5_@angular+core@14.0.5 + '@angular/cdk': 14.0.4_up4ahvy7h7pludtfht5f75kszu + '@angular/common': 14.0.5_dzujbj7drp6g2oxeynnik3virq + '@angular/compiler': 14.0.5_@angular+core@14.0.5 + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + '@angular/forms': 14.0.5_wyhyq3insgmltow5sqaabp6jgu + '@angular/material': 14.0.4_zuqzc5vo5mwbumqhimhjyhwdfa + '@angular/platform-browser': 14.0.5_iw6whprzu3c6qqw5ps72nnedmu + '@angular/platform-browser-dynamic': 14.0.5_zivgksezxddppse4yo6zg2q33u + '@angular/router': 14.0.5_wyhyq3insgmltow5sqaabp6jgu + '@fortawesome/angular-fontawesome': 0.11.1_wa2ekzfq5aswl4qyohud2hd57m + '@fortawesome/fontawesome-svg-core': 6.1.1 + '@fortawesome/free-regular-svg-icons': 6.1.1 + '@fortawesome/free-solid-svg-icons': 6.1.1 + rxjs: 7.5.5 + tslib: 2.4.0 + zone.js: 0.11.6 + +devDependencies: + '@angular-devkit/build-angular': 14.0.5_n77gh4nyaa7fwc62ayf34d6bdu + '@angular-eslint/eslint-plugin': 14.0.2_4x5o4skxv6sl53vpwefgt23khm + '@angular-eslint/eslint-plugin-template': 14.0.2_4x5o4skxv6sl53vpwefgt23khm + '@angular-eslint/template-parser': 14.0.2_4x5o4skxv6sl53vpwefgt23khm + '@angular/cli': 14.0.5 + '@angular/compiler-cli': 14.0.5_zpefgt72khwrbcajczg5cki5ui + '@types/jasmine': 3.6.8 + '@types/jasminewd2': 2.0.10 + '@types/node': 16.11.43 + '@typescript-eslint/eslint-plugin': 5.30.5_6zdoc3rn4mpiddqwhppni2mnnm + '@typescript-eslint/parser': 5.30.5_4x5o4skxv6sl53vpwefgt23khm + eslint: 8.19.0 + jasmine-core: 3.7.1 + jasmine-spec-reporter: 6.0.0 + karma: 6.3.1 + karma-chrome-launcher: 3.1.0 + karma-coverage-istanbul-reporter: 3.0.3 + karma-jasmine: 4.0.1_karma@6.3.1 + karma-jasmine-html-reporter: 1.5.4_mbeic5s3swplwzs2bjwmoofe5q + prepend-http: 3.0.1 + protractor: 7.0.0 + query-string: 6.14.1 + sort-keys: 4.2.0 + ts-node: 10.8.2_5qlmdbhxrylc4rhzh7wamif4di + typescript: 4.7.4 + +packages: + + /@ampproject/remapping/2.2.0: + resolution: { integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== } + engines: { node: '>=6.0.0' } + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.14 + dev: true + + /@angular-devkit/architect/0.1400.5: + resolution: { integrity: sha512-A5sRLPK3qGJAehYtX4ayUDwxQZ02yvsrxcpf3sv492IxbF7ymdMhcxIp+0UG6wIsLvpQkpW9ekJUdKmFB6GVAw== } + engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } + dependencies: + '@angular-devkit/core': 14.0.5 + rxjs: 6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + /@angular-devkit/build-angular/14.0.5_n77gh4nyaa7fwc62ayf34d6bdu: + resolution: { integrity: sha512-Yjp0KyuJz4BvvW3xGC6UzYyVhMXTr5geYQskI7pkXaoNvVVD9Su4kaxl78dZBT/GRNZmNkrB2fJ4D8OOWH/oBg== } + engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } + peerDependencies: + '@angular/compiler-cli': ^14.0.0 + '@angular/localize': ^14.0.0 + '@angular/service-worker': ^14.0.0 + karma: ^6.3.0 + ng-packagr: ^14.0.0 + protractor: ^7.0.0 + tailwindcss: ^2.0.0 || ^3.0.0 + typescript: '>=4.6.2 <4.8' + peerDependenciesMeta: + '@angular/localize': + optional: true + '@angular/service-worker': + optional: true + karma: + optional: true + ng-packagr: + optional: true + protractor: + optional: true + tailwindcss: + optional: true + dependencies: + '@ampproject/remapping': 2.2.0 + '@angular-devkit/architect': 0.1400.5 + '@angular-devkit/build-webpack': 0.1400.5_cwh63z5eu3fmemh7flfnfpcp74 + '@angular-devkit/core': 14.0.5 + '@angular/compiler-cli': 14.0.5_zpefgt72khwrbcajczg5cki5ui + '@babel/core': 7.17.10 + '@babel/generator': 7.17.10 + '@babel/helper-annotate-as-pure': 7.16.7 + '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.10 + '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.10 + '@babel/plugin-transform-runtime': 7.17.10_@babel+core@7.17.10 + '@babel/preset-env': 7.17.10_@babel+core@7.17.10 + '@babel/runtime': 7.17.9 + '@babel/template': 7.16.7 + '@discoveryjs/json-ext': 0.5.7 + '@ngtools/webpack': 14.0.5_ptzhxof3x65ohorlrlcmzjacqi + ansi-colors: 4.1.1 + babel-loader: 8.2.5_we4j6ycntotymd3gptdmlkk2fi + babel-plugin-istanbul: 6.1.1 + browserslist: 4.21.1 + cacache: 16.0.7 + copy-webpack-plugin: 10.2.4_webpack@5.72.1 + critters: 0.0.16 + css-loader: 6.7.1_webpack@5.72.1 + esbuild-wasm: 0.14.38 + glob: 8.0.1 + https-proxy-agent: 5.0.1 + inquirer: 8.2.4 + jsonc-parser: 3.0.0 + karma: 6.3.1 + karma-source-map-support: 1.4.0 + less: 4.1.2 + less-loader: 10.2.0_less@4.1.2+webpack@5.72.1 + license-webpack-plugin: 4.0.2_webpack@5.72.1 + loader-utils: 3.2.0 + mini-css-extract-plugin: 2.6.0_webpack@5.72.1 + minimatch: 5.0.1 + open: 8.4.0 + ora: 5.4.1 + parse5-html-rewriting-stream: 6.0.1 + piscina: 3.2.0 + postcss: 8.4.13 + postcss-import: 14.1.0_postcss@8.4.13 + postcss-loader: 6.2.1_yokl3cbwhadljnh75p6ymh6bce + postcss-preset-env: 7.5.0_postcss@8.4.13 + protractor: 7.0.0 + regenerator-runtime: 0.13.9 + resolve-url-loader: 5.0.0 + rxjs: 6.6.7 + sass: 1.51.0 + sass-loader: 12.6.0_sass@1.51.0+webpack@5.72.1 + semver: 7.3.7 + source-map-loader: 3.0.1_webpack@5.72.1 + source-map-support: 0.5.21 + stylus: 0.57.0 + stylus-loader: 6.2.0_ay64gns3hzwkz7vfnhtaeofsfy + terser: 5.13.1 + text-table: 0.2.0 + tree-kill: 1.2.2 + tslib: 2.4.0 + typescript: 4.7.4 + webpack: 5.72.1_esbuild@0.14.38 + webpack-dev-middleware: 5.3.1_webpack@5.72.1 + webpack-dev-server: 4.9.0_webpack@5.72.1 + webpack-merge: 5.8.0 + webpack-subresource-integrity: 5.1.0_webpack@5.72.1 + optionalDependencies: + esbuild: 0.14.38 + transitivePeerDependencies: + - '@swc/core' + - bluebird + - bufferutil + - chokidar + - debug + - fibers + - html-webpack-plugin + - node-sass + - sass-embedded + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli + dev: true + + /@angular-devkit/build-webpack/0.1400.5_cwh63z5eu3fmemh7flfnfpcp74: + resolution: { integrity: sha512-bg5P9e7ZqV4Vmj3eFmfZhGXxp2FICN/myvu9IpUyIaNfwsi/0S98Cc4MMH0GtoK0uy27kB5QSyWUO1rwB+npJA== } + engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } + peerDependencies: + webpack: ^5.30.0 + webpack-dev-server: ^4.0.0 + dependencies: + '@angular-devkit/architect': 0.1400.5 + rxjs: 6.6.7 + webpack: 5.72.1_esbuild@0.14.38 + webpack-dev-server: 4.9.0_webpack@5.72.1 + transitivePeerDependencies: + - chokidar + dev: true + + /@angular-devkit/core/14.0.5: + resolution: { integrity: sha512-/CUGi6QLwh79FvsOY7M+1LQL3asZsbQW/WBd5f1iu5y7TLNqCwo+wOb0ZXLDNPw45vYBxFajtt3ob3U7qx3jNg== } + engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + ajv: 8.11.0 + ajv-formats: 2.1.1 + jsonc-parser: 3.0.0 + rxjs: 6.6.7 + source-map: 0.7.3 + dev: true + + /@angular-devkit/schematics/14.0.5: + resolution: { integrity: sha512-sufxITBkn2MvgEREt9JQ3QCKHS+sue1WsVzLE+TWqG5MC/RPk0f9tQ5VoHk6ZTzDKUvOtSoc7G+n0RscQsyp5g== } + engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } + dependencies: + '@angular-devkit/core': 14.0.5 + jsonc-parser: 3.0.0 + magic-string: 0.26.1 + ora: 5.4.1 + rxjs: 6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + /@angular-eslint/bundled-angular-compiler/14.0.2: + resolution: { integrity: sha512-Ev001tGwBfy6lFd1IDrAHfW87VUqDmMQY5KWY+LM3dn0PY2XZv1RsBM16tBFbi7EaDeaxeFZg/G8PN5x+anNbg== } + dev: true + + /@angular-eslint/eslint-plugin-template/14.0.2_4x5o4skxv6sl53vpwefgt23khm: + resolution: { integrity: sha512-egan0a2GVkubST4H7x2mPMTz3Ee9QXeLEchJyWXdFBZ6Nrpfjaki5dOQYhLU7KyxqhrSW4XugMWPGj2KW2gMxQ== } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + dependencies: + '@angular-eslint/bundled-angular-compiler': 14.0.2 + '@typescript-eslint/utils': 5.29.0_4x5o4skxv6sl53vpwefgt23khm + aria-query: 5.0.0 + axobject-query: 3.0.1 + eslint: 8.19.0 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@angular-eslint/eslint-plugin/14.0.2_4x5o4skxv6sl53vpwefgt23khm: + resolution: { integrity: sha512-TfiXWqaWGysnPB6JstZouvA9tNwIsCLvSIGqniE1U90kX6p5nL8Z09JOiv/9jlYfgAIEgUD48BGMZzDi86voGA== } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + dependencies: + '@angular-eslint/utils': 14.0.2_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/utils': 5.29.0_4x5o4skxv6sl53vpwefgt23khm + eslint: 8.19.0 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@angular-eslint/template-parser/14.0.2_4x5o4skxv6sl53vpwefgt23khm: + resolution: { integrity: sha512-NTXSfL97WVs4GTKPtPcRZfWtvNbhgcIZUvKUTk5ieYiVLqsHF9Y+NlAKBh44AGldM5oCNO4HUfnvOedtqkQ+MA== } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + dependencies: + '@angular-eslint/bundled-angular-compiler': 14.0.2 + eslint: 8.19.0 + eslint-scope: 5.1.1 + typescript: 4.7.4 + dev: true + + /@angular-eslint/utils/14.0.2_4x5o4skxv6sl53vpwefgt23khm: + resolution: { integrity: sha512-8cHyQFG3jIHMHBjlqMU9ExAgOFGqbvxUa5EUvdc8wJUXtwhYx5NCQupdSpy/qG8gHiXjxvxinEtACZJQ9/SOwQ== } + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + dependencies: + '@angular-eslint/bundled-angular-compiler': 14.0.2 + '@typescript-eslint/utils': 5.29.0_4x5o4skxv6sl53vpwefgt23khm + eslint: 8.19.0 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@angular/animations/14.0.5_@angular+core@14.0.5: + resolution: { integrity: sha512-oQy4rZIsJUHbK4CMxEgxVVOKAbX+k16Wqc9t6zPlqayvj0wQA1XdTdbXMfiZyekFgtfnjb+UPjmXa2FNe1G8NQ== } + engines: { node: ^14.15.0 || >=16.10.0 } + peerDependencies: + '@angular/core': 14.0.5 + dependencies: + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + tslib: 2.4.0 + dev: false + + /@angular/cdk/14.0.4_up4ahvy7h7pludtfht5f75kszu: + resolution: { integrity: sha512-zPM4VZadoKzTF9TZ7Yx5gJ7GtQpt62f8ofdH/BF2atG+TaNzOEFqtzogP4WuJDFAxJXOPMePobhth4YjUk0Wbw== } + peerDependencies: + '@angular/common': ^14.0.0 || ^15.0.0 + '@angular/core': ^14.0.0 || ^15.0.0 + rxjs: ^6.5.3 || ^7.4.0 + dependencies: + '@angular/common': 14.0.5_dzujbj7drp6g2oxeynnik3virq + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + rxjs: 7.5.5 + tslib: 2.4.0 + optionalDependencies: + parse5: 5.1.1 + dev: false + + /@angular/cli/14.0.5: + resolution: { integrity: sha512-/Iqvy3vRqakHdxNi+Qo18xXQr8E1cCaKzMBnxR2wHNdlu1lyaw0p20E8LumoueXCrs+/SK6aKDvN6ek0R/q8Jg== } + engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } + hasBin: true + dependencies: + '@angular-devkit/architect': 0.1400.5 + '@angular-devkit/core': 14.0.5 + '@angular-devkit/schematics': 14.0.5 + '@schematics/angular': 14.0.5 + '@yarnpkg/lockfile': 1.1.0 + ansi-colors: 4.1.1 + debug: 4.3.4 + ini: 3.0.0 + inquirer: 8.2.4 + jsonc-parser: 3.0.0 + npm-package-arg: 9.0.2 + npm-pick-manifest: 7.0.1 + open: 8.4.0 + ora: 5.4.1 + pacote: 13.3.0 + resolve: 1.22.0 + semver: 7.3.7 + symbol-observable: 4.0.0 + uuid: 8.3.2 + yargs: 17.4.1 + transitivePeerDependencies: + - bluebird + - chokidar + - supports-color + dev: true + + /@angular/common/14.0.5_dzujbj7drp6g2oxeynnik3virq: + resolution: { integrity: sha512-YFRPxx3yRLjk0gPL7tm/97mi8+Pjt3q6zWCjrLkAlDjniDvgmKNWIQ1h6crZQR0Cw7yNqK0QoFXQgTw0GJIWLQ== } + engines: { node: ^14.15.0 || >=16.10.0 } + peerDependencies: + '@angular/core': 14.0.5 + rxjs: ^6.5.3 || ^7.4.0 + dependencies: + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + rxjs: 7.5.5 + tslib: 2.4.0 + dev: false + + /@angular/compiler-cli/14.0.5_zpefgt72khwrbcajczg5cki5ui: + resolution: { integrity: sha512-1bzojB5OoI/YLC7er+h+v1teG4Pp4jUxsFm9FmmgGaJ4gfadsPshzhZNASKoq/g7bQB7RnX0kgTGwwQImpirwQ== } + engines: { node: ^14.15.0 || >=16.10.0 } + hasBin: true + peerDependencies: + '@angular/compiler': 14.0.5 + typescript: '>=4.6.2 <4.8' + dependencies: + '@angular/compiler': 14.0.5_@angular+core@14.0.5 + '@babel/core': 7.18.6 + chokidar: 3.5.3 + convert-source-map: 1.8.0 + dependency-graph: 0.11.0 + magic-string: 0.26.2 + reflect-metadata: 0.1.13 + semver: 7.3.7 + sourcemap-codec: 1.4.8 + tslib: 2.4.0 + typescript: 4.7.4 + yargs: 17.5.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@angular/compiler/14.0.5_@angular+core@14.0.5: + resolution: { integrity: sha512-2Fxrdd5558FFSgWU0szYMo6Lea1jzBPzn8oAcLxo/OkaHgX8tSrlmY6y3TMlSxJu8NbdKcq1CqFMrfw5mqtoDA== } + engines: { node: ^14.15.0 || >=16.10.0 } + peerDependencies: + '@angular/core': 14.0.5 + peerDependenciesMeta: + '@angular/core': + optional: true + dependencies: + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + tslib: 2.4.0 + + /@angular/core/14.0.5_rxjs@7.5.5+zone.js@0.11.6: + resolution: { integrity: sha512-4MIfFM2nD+N0/Dk8xKfKvbdS/zYRhQgdnKT6ZIIV7Y/XCfn5QAIa4+vB5BEAZpuzSsZHLVdBQQ0TkaiONLfL2Q== } + engines: { node: ^14.15.0 || >=16.10.0 } + peerDependencies: + rxjs: ^6.5.3 || ^7.4.0 + zone.js: ~0.11.4 + dependencies: + rxjs: 7.5.5 + tslib: 2.4.0 + zone.js: 0.11.6 + + /@angular/forms/14.0.5_wyhyq3insgmltow5sqaabp6jgu: + resolution: { integrity: sha512-N1sxzaG4r0rwT3++lyYmbCUgSZaZA7E2NURvU1OFw6fay/XlI+ss1ZBFc6X0XfSa+OWxPuIBKnPmmQlP7aKOiQ== } + engines: { node: ^14.15.0 || >=16.10.0 } + peerDependencies: + '@angular/common': 14.0.5 + '@angular/core': 14.0.5 + '@angular/platform-browser': 14.0.5 + rxjs: ^6.5.3 || ^7.4.0 + dependencies: + '@angular/common': 14.0.5_dzujbj7drp6g2oxeynnik3virq + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + '@angular/platform-browser': 14.0.5_iw6whprzu3c6qqw5ps72nnedmu + rxjs: 7.5.5 + tslib: 2.4.0 + dev: false + + /@angular/material/14.0.4_zuqzc5vo5mwbumqhimhjyhwdfa: + resolution: { integrity: sha512-Ysz6oPbpLH7CvRR6oxQwpUImSbFqxL4+eiH0LPc7vkaOSrvGdZ/7cWhAfT6hVnw3bEY+eq5qBSMgyVUB44z4eg== } + peerDependencies: + '@angular/animations': ^14.0.0 || ^15.0.0 + '@angular/cdk': 14.0.4 + '@angular/common': ^14.0.0 || ^15.0.0 + '@angular/core': ^14.0.0 || ^15.0.0 + '@angular/forms': ^14.0.0 || ^15.0.0 + '@angular/platform-browser': ^14.0.0 || ^15.0.0 + rxjs: ^6.5.3 || ^7.4.0 + dependencies: + '@angular/animations': 14.0.5_@angular+core@14.0.5 + '@angular/cdk': 14.0.4_up4ahvy7h7pludtfht5f75kszu + '@angular/common': 14.0.5_dzujbj7drp6g2oxeynnik3virq + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + '@angular/forms': 14.0.5_wyhyq3insgmltow5sqaabp6jgu + '@angular/platform-browser': 14.0.5_iw6whprzu3c6qqw5ps72nnedmu + rxjs: 7.5.5 + tslib: 2.4.0 + dev: false + + /@angular/platform-browser-dynamic/14.0.5_zivgksezxddppse4yo6zg2q33u: + resolution: { integrity: sha512-VVka6K5jFd6DkFOq+ddMUj1QuI5+As5SbDLkJW0N452cYXA+CE5Y265DvbNbdXXl5wSffGGrizlKrI8jp9uLEQ== } + engines: { node: ^14.15.0 || >=16.10.0 } + peerDependencies: + '@angular/common': 14.0.5 + '@angular/compiler': 14.0.5 + '@angular/core': 14.0.5 + '@angular/platform-browser': 14.0.5 + dependencies: + '@angular/common': 14.0.5_dzujbj7drp6g2oxeynnik3virq + '@angular/compiler': 14.0.5_@angular+core@14.0.5 + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + '@angular/platform-browser': 14.0.5_iw6whprzu3c6qqw5ps72nnedmu + tslib: 2.4.0 + dev: false + + /@angular/platform-browser/14.0.5_iw6whprzu3c6qqw5ps72nnedmu: + resolution: { integrity: sha512-uWFLBKuEgLuT1HnWctr8rMdnwZZ2gEcUWbhbf6DvwePcN1G5T+ltDOcQ3o2a8396hgmU0JyxBFVyGC/PiCe5fQ== } + engines: { node: ^14.15.0 || >=16.10.0 } + peerDependencies: + '@angular/animations': 14.0.5 + '@angular/common': 14.0.5 + '@angular/core': 14.0.5 + peerDependenciesMeta: + '@angular/animations': + optional: true + dependencies: + '@angular/animations': 14.0.5_@angular+core@14.0.5 + '@angular/common': 14.0.5_dzujbj7drp6g2oxeynnik3virq + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + tslib: 2.4.0 + dev: false + + /@angular/router/14.0.5_wyhyq3insgmltow5sqaabp6jgu: + resolution: { integrity: sha512-10V6MCzg65HdnylSOSDvmcvhWhsVaedrzyfulvAT1/f77HZkK8yv1lTZ9gL/rAMOnKoH3uzdQqlDj8AnuRLKFw== } + engines: { node: ^14.15.0 || >=16.10.0 } + peerDependencies: + '@angular/common': 14.0.5 + '@angular/core': 14.0.5 + '@angular/platform-browser': 14.0.5 + rxjs: ^6.5.3 || ^7.4.0 + dependencies: + '@angular/common': 14.0.5_dzujbj7drp6g2oxeynnik3virq + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + '@angular/platform-browser': 14.0.5_iw6whprzu3c6qqw5ps72nnedmu + rxjs: 7.5.5 + tslib: 2.4.0 + dev: false + + /@assemblyscript/loader/0.10.1: + resolution: { integrity: sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg== } + dev: true + + /@babel/code-frame/7.18.6: + resolution: { integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data/7.18.8: + resolution: { integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/core/7.17.10: + resolution: { integrity: sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== } + engines: { node: '>=6.9.0' } + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.17.10 + '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.17.10 + '@babel/helper-module-transforms': 7.18.8 + '@babel/helpers': 7.18.6 + '@babel/parser': 7.18.8 + '@babel/template': 7.16.7 + '@babel/traverse': 7.18.8 + '@babel/types': 7.18.8 + convert-source-map: 1.8.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/core/7.18.6: + resolution: { integrity: sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ== } + engines: { node: '>=6.9.0' } + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.7 + '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.18.6 + '@babel/helper-module-transforms': 7.18.8 + '@babel/helpers': 7.18.6 + '@babel/parser': 7.18.8 + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.8 + '@babel/types': 7.18.8 + convert-source-map: 1.8.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator/7.17.10: + resolution: { integrity: sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + '@jridgewell/gen-mapping': 0.1.1 + jsesc: 2.5.2 + dev: true + + /@babel/generator/7.18.7: + resolution: { integrity: sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure/7.16.7: + resolution: { integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-annotate-as-pure/7.18.6: + resolution: { integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor/7.18.6: + resolution: { integrity: sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-explode-assignable-expression': 7.18.6 + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-compilation-targets/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.18.8 + '@babel/core': 7.17.10 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.1 + semver: 6.3.0 + dev: true + + /@babel/helper-compilation-targets/7.18.6_@babel+core@7.18.6: + resolution: { integrity: sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.18.8 + '@babel/core': 7.18.6 + '@babel/helper-validator-option': 7.18.6 + browserslist: 4.21.1 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-function-name': 7.18.6 + '@babel/helper-member-expression-to-functions': 7.18.6 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-regexp-features-plugin/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.1.0 + dev: true + + /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.10: + resolution: { integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== } + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.17.10 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/traverse': 7.18.8 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor/7.18.6: + resolution: { integrity: sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-explode-assignable-expression/7.18.6: + resolution: { integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-function-name/7.18.6: + resolution: { integrity: sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/template': 7.18.6 + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-hoist-variables/7.18.6: + resolution: { integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-member-expression-to-functions/7.18.6: + resolution: { integrity: sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-module-imports/7.18.6: + resolution: { integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-module-transforms/7.18.8: + resolution: { integrity: sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.18.6 + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.8 + '@babel/types': 7.18.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression/7.18.6: + resolution: { integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-plugin-utils/7.18.6: + resolution: { integrity: sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-remap-async-to-generator/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-wrap-function': 7.18.6 + '@babel/types': 7.18.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers/7.18.6: + resolution: { integrity: sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-member-expression-to-functions': 7.18.6 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/traverse': 7.18.8 + '@babel/types': 7.18.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access/7.18.6: + resolution: { integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers/7.18.6: + resolution: { integrity: sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: { integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/helper-validator-identifier/7.18.6: + resolution: { integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-validator-option/7.18.6: + resolution: { integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/helper-wrap-function/7.18.6: + resolution: { integrity: sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-function-name': 7.18.6 + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.8 + '@babel/types': 7.18.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers/7.18.6: + resolution: { integrity: sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/template': 7.18.6 + '@babel/traverse': 7.18.8 + '@babel/types': 7.18.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.18.6: + resolution: { integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.18.8: + resolution: { integrity: sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA== } + engines: { node: '>=6.0.0' } + hasBin: true + dependencies: + '@babel/types': 7.18.8 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + '@babel/plugin-proposal-optional-chaining': 7.18.6_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.17.10: + resolution: { integrity: sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-remap-async-to-generator': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.10 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-create-class-features-plugin': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-create-class-features-plugin': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.10 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-export-namespace-from/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-logical-assignment-operators/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-object-rest-spread/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.18.8 + '@babel/core': 7.17.10 + '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.10 + '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-optional-chaining/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.10 + dev: true + + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-create-class-features-plugin': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.10 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== } + engines: { node: '>=4' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.10: + resolution: { integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.10: + resolution: { integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.10: + resolution: { integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.10: + resolution: { integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.10: + resolution: { integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.10: + resolution: { integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.10: + resolution: { integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.10: + resolution: { integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.10: + resolution: { integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.10: + resolution: { integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.10: + resolution: { integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.10: + resolution: { integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.10: + resolution: { integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.10: + resolution: { integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.17.10: + resolution: { integrity: sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-remap-async-to-generator': 7.18.6_@babel+core@7.17.10 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-block-scoping/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-classes/7.18.8_@babel+core@7.17.10: + resolution: { integrity: sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-function-name': 7.18.6 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-replace-supers': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-destructuring/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-duplicate-keys/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.6 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.17.10: + resolution: { integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-function-name/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.17.10 + '@babel/helper-function-name': 7.18.6 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-literals/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-modules-amd/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-module-transforms': 7.18.8 + '@babel/helper-plugin-utils': 7.18.6 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-module-transforms': 7.18.8 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-simple-access': 7.18.6 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.18.8 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-validator-identifier': 7.18.6 + babel-plugin-dynamic-import-node: 2.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-module-transforms': 7.18.8 + '@babel/helper-plugin-utils': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-replace-supers': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters/7.18.8_@babel+core@7.17.10: + resolution: { integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-regenerator/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + regenerator-transform: 0.15.0 + dev: true + + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-runtime/7.17.10_@babel+core@7.17.10: + resolution: { integrity: sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-plugin-utils': 7.18.6 + babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.10 + babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.10 + babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.10 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-spread/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.18.6 + dev: true + + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-template-literals/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-typeof-symbol/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-unicode-escapes/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.17.10: + resolution: { integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-create-regexp-features-plugin': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + dev: true + + /@babel/preset-env/7.17.10_@babel+core@7.17.10: + resolution: { integrity: sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g== } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.18.8 + '@babel/core': 7.17.10 + '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/helper-validator-option': 7.18.6 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.10 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-class-static-block': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-export-namespace-from': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-logical-assignment-operators': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-object-rest-spread': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-optional-chaining': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-private-property-in-object': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.10 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.10 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.10 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.10 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.10 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.10 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.10 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.10 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.10 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.10 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.10 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.10 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.10 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.10 + '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.10 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-block-scoping': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-classes': 7.18.8_@babel+core@7.17.10 + '@babel/plugin-transform-computed-properties': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-destructuring': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-duplicate-keys': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.17.10 + '@babel/plugin-transform-function-name': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-literals': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-modules-amd': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-modules-commonjs': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-modules-systemjs': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-named-capturing-groups-regex': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-parameters': 7.18.8_@babel+core@7.17.10 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-regenerator': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-spread': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-template-literals': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-typeof-symbol': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-unicode-escapes': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.17.10 + '@babel/preset-modules': 0.1.5_@babel+core@7.17.10 + '@babel/types': 7.18.8 + babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.10 + babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.10 + babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.10 + core-js-compat: 3.23.4 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules/0.1.5_@babel+core@7.17.10: + resolution: { integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.18.6 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.17.10 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.17.10 + '@babel/types': 7.18.8 + esutils: 2.0.3 + dev: true + + /@babel/runtime/7.17.9: + resolution: { integrity: sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== } + engines: { node: '>=6.9.0' } + dependencies: + regenerator-runtime: 0.13.9 + dev: true + + /@babel/template/7.16.7: + resolution: { integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.18.8 + '@babel/types': 7.18.8 + dev: true + + /@babel/template/7.18.6: + resolution: { integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.18.8 + '@babel/types': 7.18.8 + dev: true + + /@babel/traverse/7.18.8: + resolution: { integrity: sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.18.7 + '@babel/helper-environment-visitor': 7.18.6 + '@babel/helper-function-name': 7.18.6 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.18.8 + '@babel/types': 7.18.8 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.18.8: + resolution: { integrity: sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw== } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + to-fast-properties: 2.0.0 + dev: true + + /@cspotcode/source-map-support/0.8.1: + resolution: { integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== } + engines: { node: '>=12' } + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@csstools/postcss-color-function/1.1.1_postcss@8.4.13: + resolution: { integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.13 + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-font-format-keywords/1.0.1_postcss@8.4.13: + resolution: { integrity: sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-hwb-function/1.0.2_postcss@8.4.13: + resolution: { integrity: sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-ic-unit/1.0.1_postcss@8.4.13: + resolution: { integrity: sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.13 + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-is-pseudo-class/2.0.7_postcss@8.4.13: + resolution: { integrity: sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/selector-specificity': 2.0.2_qiplrb533afbljv7sbepwo7yse + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /@csstools/postcss-normalize-display-values/1.0.1_postcss@8.4.13: + resolution: { integrity: sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-oklab-function/1.1.1_postcss@8.4.13: + resolution: { integrity: sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.13 + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-progressive-custom-properties/1.3.0_postcss@8.4.13: + resolution: { integrity: sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-stepped-value-functions/1.0.1_postcss@8.4.13: + resolution: { integrity: sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /@csstools/postcss-unset-value/1.0.2_postcss@8.4.13: + resolution: { integrity: sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + dev: true + + /@csstools/selector-specificity/2.0.2_qiplrb533afbljv7sbepwo7yse: + resolution: { integrity: sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + postcss-selector-parser: ^6.0.10 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /@discoveryjs/json-ext/0.5.7: + resolution: { integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== } + engines: { node: '>=10.0.0' } + dev: true + + /@eslint/eslintrc/1.3.0: + resolution: { integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.3.2 + globals: 13.16.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@fortawesome/angular-fontawesome/0.11.1_wa2ekzfq5aswl4qyohud2hd57m: + resolution: { integrity: sha512-Ngzm5MVxk76ZhYpPTNOI/mpYNz9bzwfBXC5L9mktLgOONjBuYBPVt+bH8lny8hNtDk0ppZzXsMN6CO7hckdfnw== } + peerDependencies: + '@angular/core': ^14.0.0 + '@fortawesome/fontawesome-svg-core': ~1.2.27 || ~1.3.0-beta2 || ^6.1.0 + dependencies: + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + '@fortawesome/fontawesome-svg-core': 6.1.1 + tslib: 2.4.0 + dev: false + + /@fortawesome/fontawesome-common-types/6.1.1: + resolution: { integrity: sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA== } + engines: { node: '>=6' } + requiresBuild: true + dev: false + + /@fortawesome/fontawesome-svg-core/6.1.1: + resolution: { integrity: sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg== } + engines: { node: '>=6' } + requiresBuild: true + dependencies: + '@fortawesome/fontawesome-common-types': 6.1.1 + dev: false + + /@fortawesome/free-regular-svg-icons/6.1.1: + resolution: { integrity: sha512-xXiW7hcpgwmWtndKPOzG+43fPH7ZjxOaoeyooptSztGmJxCAflHZxXNK0GcT0uEsR4jTGQAfGklDZE5NHoBhKg== } + engines: { node: '>=6' } + requiresBuild: true + dependencies: + '@fortawesome/fontawesome-common-types': 6.1.1 + dev: false + + /@fortawesome/free-solid-svg-icons/6.1.1: + resolution: { integrity: sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg== } + engines: { node: '>=6' } + requiresBuild: true + dependencies: + '@fortawesome/fontawesome-common-types': 6.1.1 + dev: false + + /@gar/promisify/1.1.3: + resolution: { integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== } + dev: true + + /@humanwhocodes/config-array/0.9.5: + resolution: { integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== } + engines: { node: '>=10.10.0' } + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: { integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== } + dev: true + + /@istanbuljs/load-nyc-config/1.1.0: + resolution: { integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== } + engines: { node: '>=8' } + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema/0.1.3: + resolution: { integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== } + engines: { node: '>=8' } + dev: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: { integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== } + engines: { node: '>=6.0.0' } + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: { integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== } + engines: { node: '>=6.0.0' } + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.14 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: { integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== } + engines: { node: '>=6.0.0' } + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: { integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== } + engines: { node: '>=6.0.0' } + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: { integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== } + dev: true + + /@jridgewell/trace-mapping/0.3.14: + resolution: { integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== } + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@jridgewell/trace-mapping/0.3.9: + resolution: { integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== } + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + + /@leichtgewicht/ip-codec/2.0.4: + resolution: { integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== } + dev: true + + /@ngtools/webpack/14.0.5_ptzhxof3x65ohorlrlcmzjacqi: + resolution: { integrity: sha512-fOHtOYfuQhMTcqOfASuH5z8LwEmIG8323yPTP528w9RM9bUr3JaoK1RNcVuLKSvAGRTvTfeykK3/Eri/YW1DvQ== } + engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } + peerDependencies: + '@angular/compiler-cli': ^14.0.0 + typescript: '>=4.6.2 <4.8' + webpack: ^5.54.0 + dependencies: + '@angular/compiler-cli': 14.0.5_zpefgt72khwrbcajczg5cki5ui + typescript: 4.7.4 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== } + engines: { node: '>= 8' } + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== } + engines: { node: '>= 8' } + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== } + engines: { node: '>= 8' } + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + + /@npmcli/fs/1.1.1: + resolution: { integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== } + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.3.7 + dev: true + + /@npmcli/fs/2.1.0: + resolution: { integrity: sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.3.7 + dev: true + + /@npmcli/git/3.0.1: + resolution: { integrity: sha512-UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + '@npmcli/promise-spawn': 3.0.0 + lru-cache: 7.12.0 + mkdirp: 1.0.4 + npm-pick-manifest: 7.0.1 + proc-log: 2.0.1 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.3.7 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + dev: true + + /@npmcli/installed-package-contents/1.0.7: + resolution: { integrity: sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== } + engines: { node: '>= 10' } + hasBin: true + dependencies: + npm-bundled: 1.1.2 + npm-normalize-package-bin: 1.0.1 + dev: true + + /@npmcli/move-file/1.1.2: + resolution: { integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== } + engines: { node: '>=10' } + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: true + + /@npmcli/move-file/2.0.0: + resolution: { integrity: sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: true + + /@npmcli/node-gyp/2.0.0: + resolution: { integrity: sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dev: true + + /@npmcli/promise-spawn/3.0.0: + resolution: { integrity: sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + infer-owner: 1.0.4 + dev: true + + /@npmcli/run-script/3.0.3: + resolution: { integrity: sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + '@npmcli/node-gyp': 2.0.0 + '@npmcli/promise-spawn': 3.0.0 + node-gyp: 8.4.1 + read-package-json-fast: 2.0.3 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /@schematics/angular/14.0.5: + resolution: { integrity: sha512-xZjXHLn1djIvKJFiOfspTrzAomtDGRqGgsOo06glBkC+cqKCyyXU1Hgxnd3S5V+8a6TpYgX25AXihtE3BeCJzg== } + engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } + dependencies: + '@angular-devkit/core': 14.0.5 + '@angular-devkit/schematics': 14.0.5 + jsonc-parser: 3.0.0 + transitivePeerDependencies: + - chokidar + dev: true + + /@tootallnate/once/1.1.2: + resolution: { integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== } + engines: { node: '>= 6' } + dev: true + + /@tootallnate/once/2.0.0: + resolution: { integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== } + engines: { node: '>= 10' } + dev: true + + /@tsconfig/node10/1.0.9: + resolution: { integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== } + dev: true + + /@tsconfig/node12/1.0.11: + resolution: { integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== } + dev: true + + /@tsconfig/node14/1.0.3: + resolution: { integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== } + dev: true + + /@tsconfig/node16/1.0.3: + resolution: { integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== } + dev: true + + /@types/body-parser/1.19.2: + resolution: { integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== } + dependencies: + '@types/connect': 3.4.35 + '@types/node': 16.11.43 + dev: true + + /@types/bonjour/3.5.10: + resolution: { integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== } + dependencies: + '@types/node': 16.11.43 + dev: true + + /@types/component-emitter/1.2.10: + resolution: { integrity: sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg== } + dev: true + + /@types/connect-history-api-fallback/1.3.5: + resolution: { integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== } + dependencies: + '@types/express-serve-static-core': 4.17.29 + '@types/node': 16.11.43 + dev: true + + /@types/connect/3.4.35: + resolution: { integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== } + dependencies: + '@types/node': 16.11.43 + dev: true + + /@types/cookie/0.4.0: + resolution: { integrity: sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg== } + dev: true + + /@types/cors/2.8.10: + resolution: { integrity: sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== } + dev: true + + /@types/eslint-scope/3.7.4: + resolution: { integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== } + dependencies: + '@types/eslint': 8.4.5 + '@types/estree': 0.0.51 + dev: true + + /@types/eslint/8.4.5: + resolution: { integrity: sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ== } + dependencies: + '@types/estree': 0.0.51 + '@types/json-schema': 7.0.11 + dev: true + + /@types/estree/0.0.51: + resolution: { integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== } + dev: true + + /@types/express-serve-static-core/4.17.29: + resolution: { integrity: sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q== } + dependencies: + '@types/node': 16.11.43 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + dev: true + + /@types/express/4.17.13: + resolution: { integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== } + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.29 + '@types/qs': 6.9.7 + '@types/serve-static': 1.13.10 + dev: true + + /@types/http-proxy/1.17.9: + resolution: { integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== } + dependencies: + '@types/node': 16.11.43 + dev: true + + /@types/jasmine/3.10.6: + resolution: { integrity: sha512-twY9adK/vz72oWxCWxzXaxoDtF9TpfEEsxvbc1ibjF3gMD/RThSuSud/GKUTR3aJnfbivAbC/vLqhY+gdWCHfA== } + dev: true + + /@types/jasmine/3.6.8: + resolution: { integrity: sha512-KTG8ONQC2qm679pJiuNzv7TlkMopSOUvGxZ9nz5M/QFrbWc/36A9mg7jQ76JgNWYogkHmTKaEPRP8MROvFZVwA== } + dev: true + + /@types/jasminewd2/2.0.10: + resolution: { integrity: sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g== } + dependencies: + '@types/jasmine': 3.10.6 + dev: true + + /@types/json-schema/7.0.11: + resolution: { integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== } + dev: true + + /@types/mime/1.3.2: + resolution: { integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== } + dev: true + + /@types/node/16.11.43: + resolution: { integrity: sha512-GqWykok+3uocgfAJM8imbozrqLnPyTrpFlrryURQlw1EesPUCx5XxTiucWDSFF9/NUEXDuD4bnvHm8xfVGWTpQ== } + dev: true + + /@types/parse-json/4.0.0: + resolution: { integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== } + dev: true + + /@types/q/0.0.32: + resolution: { integrity: sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug== } + dev: true + + /@types/qs/6.9.7: + resolution: { integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== } + dev: true + + /@types/range-parser/1.2.4: + resolution: { integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== } + dev: true + + /@types/retry/0.12.0: + resolution: { integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== } + dev: true + + /@types/selenium-webdriver/3.0.17: + resolution: { integrity: sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw== } + dev: true + + /@types/serve-index/1.9.1: + resolution: { integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== } + dependencies: + '@types/express': 4.17.13 + dev: true + + /@types/serve-static/1.13.10: + resolution: { integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== } + dependencies: + '@types/mime': 1.3.2 + '@types/node': 16.11.43 + dev: true + + /@types/sockjs/0.3.33: + resolution: { integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== } + dependencies: + '@types/node': 16.11.43 + dev: true + + /@types/ws/8.5.3: + resolution: { integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== } + dependencies: + '@types/node': 16.11.43 + dev: true + + /@typescript-eslint/eslint-plugin/5.30.5_6zdoc3rn4mpiddqwhppni2mnnm: + resolution: { integrity: sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.30.5_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/scope-manager': 5.30.5 + '@typescript-eslint/type-utils': 5.30.5_4x5o4skxv6sl53vpwefgt23khm + '@typescript-eslint/utils': 5.30.5_4x5o4skxv6sl53vpwefgt23khm + debug: 4.3.4 + eslint: 8.19.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.0 + regexpp: 3.2.0 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser/5.30.5_4x5o4skxv6sl53vpwefgt23khm: + resolution: { integrity: sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.30.5 + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/typescript-estree': 5.30.5_typescript@4.7.4 + debug: 4.3.4 + eslint: 8.19.0 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.29.0: + resolution: { integrity: sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + '@typescript-eslint/types': 5.29.0 + '@typescript-eslint/visitor-keys': 5.29.0 + dev: true + + /@typescript-eslint/scope-manager/5.30.5: + resolution: { integrity: sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/visitor-keys': 5.30.5 + dev: true + + /@typescript-eslint/type-utils/5.30.5_4x5o4skxv6sl53vpwefgt23khm: + resolution: { integrity: sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/utils': 5.30.5_4x5o4skxv6sl53vpwefgt23khm + debug: 4.3.4 + eslint: 8.19.0 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.29.0: + resolution: { integrity: sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /@typescript-eslint/types/5.30.5: + resolution: { integrity: sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /@typescript-eslint/typescript-estree/5.29.0_typescript@4.7.4: + resolution: { integrity: sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.29.0 + '@typescript-eslint/visitor-keys': 5.29.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree/5.30.5_typescript@4.7.4: + resolution: { integrity: sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/visitor-keys': 5.30.5 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.7.4 + typescript: 4.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.29.0_4x5o4skxv6sl53vpwefgt23khm: + resolution: { integrity: sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.29.0 + '@typescript-eslint/types': 5.29.0 + '@typescript-eslint/typescript-estree': 5.29.0_typescript@4.7.4 + eslint: 8.19.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.19.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils/5.30.5_4x5o4skxv6sl53vpwefgt23khm: + resolution: { integrity: sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.30.5 + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/typescript-estree': 5.30.5_typescript@4.7.4 + eslint: 8.19.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.19.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.29.0: + resolution: { integrity: sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + '@typescript-eslint/types': 5.29.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@typescript-eslint/visitor-keys/5.30.5: + resolution: { integrity: sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + '@typescript-eslint/types': 5.30.5 + eslint-visitor-keys: 3.3.0 + dev: true + + /@webassemblyjs/ast/1.11.1: + resolution: { integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== } + dependencies: + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + dev: true + + /@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: { integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== } + dev: true + + /@webassemblyjs/helper-api-error/1.11.1: + resolution: { integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== } + dev: true + + /@webassemblyjs/helper-buffer/1.11.1: + resolution: { integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== } + dev: true + + /@webassemblyjs/helper-numbers/1.11.1: + resolution: { 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 + dev: true + + /@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: { integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== } + dev: true + + /@webassemblyjs/helper-wasm-section/1.11.1: + resolution: { 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 + dev: true + + /@webassemblyjs/ieee754/1.11.1: + resolution: { integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== } + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128/1.11.1: + resolution: { integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== } + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8/1.11.1: + resolution: { integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== } + dev: true + + /@webassemblyjs/wasm-edit/1.11.1: + resolution: { 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 + dev: true + + /@webassemblyjs/wasm-gen/1.11.1: + resolution: { 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 + dev: true + + /@webassemblyjs/wasm-opt/1.11.1: + resolution: { 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 + dev: true + + /@webassemblyjs/wasm-parser/1.11.1: + resolution: { 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 + dev: true + + /@webassemblyjs/wast-printer/1.11.1: + resolution: { integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== } + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + /@xtuc/ieee754/1.2.0: + resolution: { integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== } + dev: true + + /@xtuc/long/4.2.2: + resolution: { integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== } + dev: true + + /@yarnpkg/lockfile/1.1.0: + resolution: { integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== } + dev: true + + /abab/2.0.6: + resolution: { integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== } + dev: true + + /abbrev/1.1.1: + resolution: { integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== } + dev: true + + /accepts/1.3.7: + resolution: { integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== } + engines: { node: '>= 0.6' } + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.2 + dev: true + + /accepts/1.3.8: + resolution: { integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== } + engines: { node: '>= 0.6' } + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + + /acorn-import-assertions/1.8.0_acorn@8.7.1: + resolution: { integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== } + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.7.1 + dev: true + + /acorn-jsx/5.3.2_acorn@8.7.1: + resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.7.1 + dev: true + + /acorn-walk/8.2.0: + resolution: { integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== } + engines: { node: '>=0.4.0' } + dev: true + + /acorn/8.7.1: + resolution: { integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== } + engines: { node: '>=0.4.0' } + hasBin: true + dev: true + + /adjust-sourcemap-loader/4.0.0: + resolution: { integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A== } + engines: { node: '>=8.9' } + dependencies: + loader-utils: 2.0.2 + regex-parser: 2.2.11 + dev: true + + /adm-zip/0.4.16: + resolution: { integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== } + engines: { node: '>=0.3.0' } + dev: true + + /agent-base/4.3.0: + resolution: { integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== } + engines: { node: '>= 4.0.0' } + dependencies: + es6-promisify: 5.0.0 + dev: true + + /agent-base/6.0.2: + resolution: { integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== } + engines: { node: '>= 6.0.0' } + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /agentkeepalive/4.2.1: + resolution: { integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== } + engines: { node: '>= 8.0.0' } + dependencies: + debug: 4.3.4 + depd: 1.1.2 + humanize-ms: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error/3.1.0: + resolution: { integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== } + engines: { node: '>=8' } + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv-formats/2.1.1: + resolution: { integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== } + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.11.0 + dev: true + + /ajv-keywords/3.5.2_ajv@6.12.6: + resolution: { integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== } + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv-keywords/5.1.0_ajv@8.11.0: + resolution: { integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== } + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.11.0 + fast-deep-equal: 3.1.3 + dev: true + + /ajv/6.12.6: + resolution: { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== } + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv/8.11.0: + resolution: { integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== } + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-colors/4.1.1: + resolution: { integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== } + engines: { node: '>=6' } + dev: true + + /ansi-escapes/4.3.2: + resolution: { integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== } + engines: { node: '>=8' } + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-html-community/0.0.8: + resolution: { integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== } + engines: { '0': node >= 0.8.0 } + hasBin: true + dev: true + + /ansi-regex/2.1.1: + resolution: { integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== } + engines: { node: '>=0.10.0' } + dev: true + + /ansi-regex/5.0.1: + resolution: { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } + engines: { node: '>=8' } + dev: true + + /ansi-styles/2.2.1: + resolution: { integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== } + engines: { node: '>=0.10.0' } + dev: true + + /ansi-styles/3.2.1: + resolution: { integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== } + engines: { node: '>=4' } + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } + engines: { node: '>=8' } + dependencies: + color-convert: 2.0.1 + dev: true + + /anymatch/3.1.2: + resolution: { integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== } + engines: { node: '>= 8' } + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /aproba/2.0.0: + resolution: { integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== } + dev: true + + /are-we-there-yet/3.0.0: + resolution: { integrity: sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16 } + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.0 + dev: true + + /arg/4.1.3: + resolution: { integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== } + dev: true + + /argparse/1.0.10: + resolution: { integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== } + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse/2.0.1: + resolution: { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== } + dev: true + + /aria-query/5.0.0: + resolution: { integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== } + engines: { node: '>=6.0' } + dev: true + + /array-flatten/1.1.1: + resolution: { integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== } + dev: true + + /array-flatten/2.1.2: + resolution: { integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== } + dev: true + + /array-union/1.0.2: + resolution: { integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== } + engines: { node: '>=0.10.0' } + dependencies: + array-uniq: 1.0.3 + dev: true + + /array-union/2.1.0: + resolution: { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== } + engines: { node: '>=8' } + dev: true + + /array-union/3.0.1: + resolution: { integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw== } + engines: { node: '>=12' } + dev: true + + /array-uniq/1.0.3: + resolution: { integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== } + engines: { node: '>=0.10.0' } + dev: true + + /arrify/1.0.1: + resolution: { integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== } + engines: { node: '>=0.10.0' } + dev: true + + /asn1/0.2.4: + resolution: { integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== } + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus/1.0.0: + resolution: { integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== } + engines: { node: '>=0.8' } + dev: true + + /asynckit/0.4.0: + resolution: { integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== } + dev: true + + /atob/2.1.2: + resolution: { integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== } + engines: { node: '>= 4.5.0' } + hasBin: true + dev: true + + /autoprefixer/10.4.7_postcss@8.4.13: + resolution: { integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA== } + engines: { node: ^10 || ^12 || >=14 } + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.1 + caniuse-lite: 1.0.30001364 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /aws-sign2/0.7.0: + resolution: { integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== } + dev: true + + /aws4/1.11.0: + resolution: { integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== } + dev: true + + /axobject-query/3.0.1: + resolution: { integrity: sha512-vy5JPSOibF9yAeC2PoemRdA1MuSXX7vX5osdoxKf/6OUeppAWekZ3JIJVNWFMH6wgj7uHYyqZUSqE/b/3JLV1A== } + engines: { node: '>=6.0' } + dev: true + + /babel-loader/8.2.5_we4j6ycntotymd3gptdmlkk2fi: + resolution: { integrity: sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== } + engines: { node: '>= 8.9' } + peerDependencies: + '@babel/core': ^7.0.0 + webpack: '>=2' + dependencies: + '@babel/core': 7.17.10 + find-cache-dir: 3.3.2 + loader-utils: 2.0.2 + make-dir: 3.1.0 + schema-utils: 2.7.1 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /babel-plugin-dynamic-import-node/2.3.3: + resolution: { integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== } + dependencies: + object.assign: 4.1.2 + dev: true + + /babel-plugin-istanbul/6.1.1: + resolution: { integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== } + engines: { node: '>=8' } + dependencies: + '@babel/helper-plugin-utils': 7.18.6 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.0 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.10: + resolution: { integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.18.8 + '@babel/core': 7.17.10 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.10 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.10: + resolution: { integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.10 + core-js-compat: 3.23.4 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.10: + resolution: { integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== } + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.10 + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match/1.0.2: + resolution: { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } + dev: true + + /base64-arraybuffer/0.1.4: + resolution: { integrity: sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg== } + engines: { node: '>= 0.6.0' } + dev: true + + /base64-js/1.5.1: + resolution: { integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== } + dev: true + + /base64id/2.0.0: + resolution: { integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== } + engines: { node: ^4.5.0 || >= 5.9 } + dev: true + + /batch/0.6.1: + resolution: { integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== } + dev: true + + /bcrypt-pbkdf/1.0.2: + resolution: { integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== } + dependencies: + tweetnacl: 0.14.5 + dev: true + + /big.js/5.2.2: + resolution: { integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== } + dev: true + + /binary-extensions/2.2.0: + resolution: { integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== } + engines: { node: '>=8' } + dev: true + + /bl/4.1.0: + resolution: { integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== } + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + + /blocking-proxy/1.0.1: + resolution: { integrity: sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA== } + engines: { node: '>=6.9.x' } + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /body-parser/1.19.0: + resolution: { integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== } + engines: { node: '>= 0.8' } + dependencies: + bytes: 3.1.0 + content-type: 1.0.4 + debug: 2.6.9 + depd: 1.1.2 + http-errors: 1.7.2 + iconv-lite: 0.4.24 + on-finished: 2.3.0 + qs: 6.7.0 + raw-body: 2.4.0 + type-is: 1.6.18 + transitivePeerDependencies: + - supports-color + dev: true + + /body-parser/1.20.0: + resolution: { integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + 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.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /bonjour-service/1.0.13: + resolution: { integrity: sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA== } + dependencies: + array-flatten: 2.1.2 + dns-equal: 1.0.0 + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: true + + /boolbase/1.0.0: + resolution: { integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== } + dev: true + + /brace-expansion/1.1.11: + resolution: { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== } + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion/2.0.1: + resolution: { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== } + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces/3.0.2: + resolution: { integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== } + engines: { node: '>=8' } + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist/4.21.1: + resolution: { integrity: sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + dependencies: + caniuse-lite: 1.0.30001364 + electron-to-chromium: 1.4.185 + node-releases: 2.0.6 + update-browserslist-db: 1.0.4_browserslist@4.21.1 + dev: true + + /browserstack/1.6.1: + resolution: { integrity: sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw== } + dependencies: + https-proxy-agent: 2.2.4 + transitivePeerDependencies: + - supports-color + dev: true + + /buffer-from/1.1.2: + resolution: { integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== } + dev: true + + /buffer/5.7.1: + resolution: { integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /builtins/5.0.1: + resolution: { integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== } + dependencies: + semver: 7.3.7 + dev: true + + /bytes/3.0.0: + resolution: { integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== } + engines: { node: '>= 0.8' } + dev: true + + /bytes/3.1.0: + resolution: { integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== } + engines: { node: '>= 0.8' } + dev: true + + /bytes/3.1.2: + resolution: { integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== } + engines: { node: '>= 0.8' } + dev: true + + /cacache/15.3.0: + resolution: { integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== } + engines: { node: '>= 10' } + dependencies: + '@npmcli/fs': 1.1.1 + '@npmcli/move-file': 1.1.2 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 7.2.3 + infer-owner: 1.0.4 + lru-cache: 6.0.0 + minipass: 3.3.4 + 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: 8.0.1 + tar: 6.1.11 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + dev: true + + /cacache/16.0.7: + resolution: { integrity: sha512-a4zfQpp5vm4Ipdvbj+ZrPonikRhm6WBEd4zT1Yc1DXsmAxrPgDwWBLF/u/wTVXSFPIgOJ1U3ghSa2Xm4s3h28w== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + '@npmcli/fs': 2.1.0 + '@npmcli/move-file': 2.0.0 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.0.3 + infer-owner: 1.0.4 + lru-cache: 7.12.0 + minipass: 3.3.4 + 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.1 + tar: 6.1.11 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + dev: true + + /cacache/16.1.1: + resolution: { integrity: sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + '@npmcli/fs': 2.1.0 + '@npmcli/move-file': 2.0.0 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.0.3 + infer-owner: 1.0.4 + lru-cache: 7.12.0 + minipass: 3.3.4 + 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.1 + tar: 6.1.11 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + dev: true + + /call-bind/1.0.2: + resolution: { integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== } + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.2 + dev: true + + /callsites/3.1.0: + resolution: { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } + engines: { node: '>=6' } + dev: true + + /camelcase/5.3.1: + resolution: { integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== } + engines: { node: '>=6' } + dev: true + + /caniuse-lite/1.0.30001364: + resolution: { integrity: sha512-9O0xzV3wVyX0SlegIQ6knz+okhBB5pE0PC40MNdwcipjwpxoUEHL24uJ+gG42cgklPjfO5ZjZPme9FTSN3QT2Q== } + dev: true + + /caseless/0.12.0: + resolution: { integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== } + dev: true + + /chalk/1.1.3: + resolution: { integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== } + engines: { node: '>=0.10.0' } + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk/2.4.2: + resolution: { integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== } + engines: { node: '>=4' } + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.2: + resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chardet/0.7.0: + resolution: { integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== } + dev: true + + /chokidar/3.5.1: + resolution: { integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== } + engines: { node: '>= 8.10.0' } + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.5.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /chokidar/3.5.3: + resolution: { integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== } + engines: { node: '>= 8.10.0' } + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /chownr/2.0.0: + resolution: { integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== } + engines: { node: '>=10' } + dev: true + + /chrome-trace-event/1.0.3: + resolution: { integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== } + engines: { node: '>=6.0' } + dev: true + + /clean-stack/2.2.0: + resolution: { integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== } + engines: { node: '>=6' } + dev: true + + /cli-cursor/3.1.0: + resolution: { integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== } + engines: { node: '>=8' } + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners/2.6.1: + resolution: { integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== } + engines: { node: '>=6' } + dev: true + + /cli-width/3.0.0: + resolution: { integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== } + engines: { node: '>= 10' } + dev: true + + /cliui/6.0.0: + resolution: { integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /cliui/7.0.4: + resolution: { integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-deep/4.0.1: + resolution: { integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== } + engines: { node: '>=6' } + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true + + /clone/1.0.4: + resolution: { integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== } + engines: { node: '>=0.8' } + dev: true + + /color-convert/1.9.3: + resolution: { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== } + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } + engines: { node: '>=7.0.0' } + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== } + dev: true + + /color-name/1.1.4: + resolution: { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } + dev: true + + /color-support/1.1.3: + resolution: { integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== } + hasBin: true + dev: true + + /colorette/2.0.19: + resolution: { integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== } + dev: true + + /colors/1.4.0: + resolution: { integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== } + engines: { node: '>=0.1.90' } + dev: true + + /combined-stream/1.0.8: + resolution: { integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== } + engines: { node: '>= 0.8' } + dependencies: + delayed-stream: 1.0.0 + dev: true + + /commander/2.20.3: + resolution: { integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== } + dev: true + + /commondir/1.0.1: + resolution: { integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== } + dev: true + + /component-emitter/1.3.0: + resolution: { integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== } + dev: true + + /compressible/2.0.18: + resolution: { integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.52.0 + dev: true + + /compression/1.7.4: + resolution: { integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== } + engines: { node: '>= 0.8.0' } + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /concat-map/0.0.1: + resolution: { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } + dev: true + + /connect-history-api-fallback/1.6.0: + resolution: { integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== } + engines: { node: '>=0.8' } + dev: true + + /connect/3.7.0: + resolution: { integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== } + engines: { node: '>= 0.10.0' } + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /console-control-strings/1.1.0: + resolution: { integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== } + dev: true + + /content-disposition/0.5.4: + resolution: { integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== } + engines: { node: '>= 0.6' } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /content-type/1.0.4: + resolution: { integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== } + engines: { node: '>= 0.6' } + dev: true + + /convert-source-map/1.8.0: + resolution: { integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== } + dependencies: + safe-buffer: 5.1.2 + dev: true + + /cookie-signature/1.0.6: + resolution: { integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== } + dev: true + + /cookie/0.4.2: + resolution: { integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== } + engines: { node: '>= 0.6' } + dev: true + + /cookie/0.5.0: + resolution: { integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== } + engines: { node: '>= 0.6' } + dev: true + + /copy-anything/2.0.6: + resolution: { integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw== } + dependencies: + is-what: 3.14.1 + dev: true + + /copy-webpack-plugin/10.2.4_webpack@5.72.1: + resolution: { integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg== } + engines: { node: '>= 12.20.0' } + peerDependencies: + webpack: ^5.1.0 + dependencies: + fast-glob: 3.2.11 + glob-parent: 6.0.2 + globby: 12.2.0 + normalize-path: 3.0.0 + schema-utils: 4.0.0 + serialize-javascript: 6.0.0 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /core-js-compat/3.23.4: + resolution: { integrity: sha512-RkSRPe+JYEoflcsuxJWaiMPhnZoFS51FcIxm53k4KzhISCBTmaGlto9dTIrYuk0hnJc3G6pKufAKepHnBq6B6Q== } + dependencies: + browserslist: 4.21.1 + semver: 7.0.0 + dev: true + + /core-util-is/1.0.2: + resolution: { integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== } + dev: true + + /core-util-is/1.0.3: + resolution: { integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== } + dev: true + + /cors/2.8.5: + resolution: { integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== } + engines: { node: '>= 0.10' } + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /cosmiconfig/7.0.1: + resolution: { integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== } + engines: { node: '>=10' } + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /create-require/1.1.1: + resolution: { integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== } + dev: true + + /critters/0.0.16: + resolution: { integrity: sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A== } + dependencies: + chalk: 4.1.2 + css-select: 4.3.0 + parse5: 6.0.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + postcss: 8.4.13 + pretty-bytes: 5.6.0 + dev: true + + /cross-spawn/7.0.3: + resolution: { integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== } + engines: { node: '>= 8' } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-blank-pseudo/3.0.3_postcss@8.4.13: + resolution: { integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== } + engines: { node: ^12 || ^14 || >=16 } + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /css-has-pseudo/3.0.4_postcss@8.4.13: + resolution: { integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== } + engines: { node: ^12 || ^14 || >=16 } + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /css-loader/6.7.1_webpack@5.72.1: + resolution: { integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== } + engines: { node: '>= 12.13.0' } + peerDependencies: + webpack: ^5.0.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.13 + postcss: 8.4.13 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.13 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.13 + postcss-modules-scope: 3.0.0_postcss@8.4.13 + postcss-modules-values: 4.0.0_postcss@8.4.13 + postcss-value-parser: 4.2.0 + semver: 7.3.7 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /css-prefers-color-scheme/6.0.3_postcss@8.4.13: + resolution: { integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== } + engines: { node: ^12 || ^14 || >=16 } + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + dev: true + + /css-select/4.3.0: + resolution: { integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== } + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-what/6.1.0: + resolution: { integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== } + engines: { node: '>= 6' } + dev: true + + /css/3.0.0: + resolution: { integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== } + dependencies: + inherits: 2.0.4 + source-map: 0.6.1 + source-map-resolve: 0.6.0 + dev: true + + /cssdb/6.6.3: + resolution: { integrity: sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA== } + dev: true + + /cssesc/3.0.0: + resolution: { integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== } + engines: { node: '>=4' } + hasBin: true + dev: true + + /custom-event/1.0.1: + resolution: { integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== } + dev: true + + /dashdash/1.14.1: + resolution: { integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== } + engines: { node: '>=0.10' } + dependencies: + assert-plus: 1.0.0 + dev: true + + /date-format/2.1.0: + resolution: { integrity: sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA== } + engines: { node: '>=4.0' } + dev: true + + /date-format/3.0.0: + resolution: { integrity: sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== } + engines: { node: '>=4.0' } + dev: true + + /debug/2.6.9: + resolution: { integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: { integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug/4.3.4: + resolution: { integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize/1.2.0: + resolution: { integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== } + engines: { node: '>=0.10.0' } + dev: true + + /decode-uri-component/0.2.0: + resolution: { integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== } + engines: { node: '>=0.10' } + dev: true + + /deep-is/0.1.4: + resolution: { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== } + dev: true + + /default-gateway/6.0.3: + resolution: { integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== } + engines: { node: '>= 10' } + dependencies: + execa: 5.1.1 + dev: true + + /defaults/1.0.3: + resolution: { integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA== } + dependencies: + clone: 1.0.4 + dev: true + + /define-lazy-prop/2.0.0: + resolution: { integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== } + engines: { node: '>=8' } + dev: true + + /define-properties/1.1.4: + resolution: { integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== } + engines: { node: '>= 0.4' } + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /del/2.2.2: + resolution: { integrity: sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ== } + engines: { node: '>=0.10.0' } + dependencies: + globby: 5.0.0 + is-path-cwd: 1.0.0 + is-path-in-cwd: 1.0.1 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + rimraf: 2.7.1 + dev: true + + /delayed-stream/1.0.0: + resolution: { integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== } + engines: { node: '>=0.4.0' } + dev: true + + /delegates/1.0.0: + resolution: { integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== } + dev: true + + /depd/1.1.2: + resolution: { integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== } + engines: { node: '>= 0.6' } + dev: true + + /depd/2.0.0: + resolution: { integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== } + engines: { node: '>= 0.8' } + dev: true + + /dependency-graph/0.11.0: + resolution: { integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== } + engines: { node: '>= 0.6.0' } + dev: true + + /destroy/1.2.0: + resolution: { integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== } + engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 } + dev: true + + /detect-node/2.1.0: + resolution: { integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== } + dev: true + + /di/0.0.1: + resolution: { integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== } + dev: true + + /diff/4.0.2: + resolution: { integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== } + engines: { node: '>=0.3.1' } + dev: true + + /dir-glob/3.0.1: + resolution: { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== } + engines: { node: '>=8' } + dependencies: + path-type: 4.0.0 + dev: true + + /dns-equal/1.0.0: + resolution: { integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== } + dev: true + + /dns-packet/5.4.0: + resolution: { integrity: sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== } + engines: { node: '>=6' } + dependencies: + '@leichtgewicht/ip-codec': 2.0.4 + dev: true + + /doctrine/3.0.0: + resolution: { integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== } + engines: { node: '>=6.0.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serialize/2.2.1: + resolution: { integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== } + dependencies: + custom-event: 1.0.1 + ent: 2.2.0 + extend: 3.0.2 + void-elements: 2.0.1 + dev: true + + /dom-serializer/1.4.1: + resolution: { integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== } + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /domelementtype/2.3.0: + resolution: { integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== } + dev: true + + /domhandler/4.3.1: + resolution: { integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== } + engines: { node: '>= 4' } + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils/2.8.0: + resolution: { integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== } + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /ecc-jsbn/0.1.2: + resolution: { integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== } + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /ee-first/1.1.1: + resolution: { integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== } + dev: true + + /electron-to-chromium/1.4.185: + resolution: { integrity: sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw== } + dev: true + + /emoji-regex/8.0.0: + resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } + dev: true + + /emojis-list/3.0.0: + resolution: { integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== } + engines: { node: '>= 4' } + dev: true + + /encodeurl/1.0.2: + resolution: { integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== } + engines: { node: '>= 0.8' } + dev: true + + /encoding/0.1.13: + resolution: { integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== } + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + dev: true + optional: true + + /engine.io-parser/4.0.2: + resolution: { integrity: sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg== } + engines: { node: '>=8.0.0' } + dependencies: + base64-arraybuffer: 0.1.4 + dev: true + + /engine.io/4.1.1: + resolution: { integrity: sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w== } + engines: { node: '>=10.0.0' } + dependencies: + accepts: 1.3.7 + base64id: 2.0.0 + cookie: 0.4.2 + cors: 2.8.5 + debug: 4.3.4 + engine.io-parser: 4.0.2 + ws: 7.4.6 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /enhanced-resolve/5.10.0: + resolution: { integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== } + engines: { node: '>=10.13.0' } + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + dev: true + + /ent/2.2.0: + resolution: { integrity: sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== } + dev: true + + /entities/2.2.0: + resolution: { integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== } + dev: true + + /env-paths/2.2.1: + resolution: { integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== } + engines: { node: '>=6' } + dev: true + + /err-code/2.0.3: + resolution: { integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== } + dev: true + + /errno/0.1.8: + resolution: { integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== } + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + optional: true + + /error-ex/1.3.2: + resolution: { integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== } + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-module-lexer/0.9.3: + resolution: { integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== } + dev: true + + /es6-promise/4.2.8: + resolution: { integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== } + dev: true + + /es6-promisify/5.0.0: + resolution: { integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== } + dependencies: + es6-promise: 4.2.8 + dev: true + + /esbuild-android-64/0.14.38: + resolution: { integrity: sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw== } + engines: { node: '>=12' } + cpu: [ x64 ] + os: [ android ] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.14.38: + resolution: { integrity: sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA== } + engines: { node: '>=12' } + cpu: [ arm64 ] + os: [ android ] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.14.38: + resolution: { integrity: sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA== } + engines: { node: '>=12' } + cpu: [ x64 ] + os: [ darwin ] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.14.38: + resolution: { integrity: sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ== } + engines: { node: '>=12' } + cpu: [ arm64 ] + os: [ darwin ] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.14.38: + resolution: { integrity: sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig== } + engines: { node: '>=12' } + cpu: [ x64 ] + os: [ freebsd ] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.14.38: + resolution: { integrity: sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ== } + engines: { node: '>=12' } + cpu: [ arm64 ] + os: [ freebsd ] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.14.38: + resolution: { integrity: sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g== } + engines: { node: '>=12' } + cpu: [ ia32 ] + os: [ linux ] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.14.38: + resolution: { integrity: sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q== } + engines: { node: '>=12' } + cpu: [ x64 ] + os: [ linux ] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.14.38: + resolution: { integrity: sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA== } + engines: { node: '>=12' } + cpu: [ arm ] + os: [ linux ] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.14.38: + resolution: { integrity: sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA== } + engines: { node: '>=12' } + cpu: [ arm64 ] + os: [ linux ] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.14.38: + resolution: { integrity: sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ== } + engines: { node: '>=12' } + cpu: [ mips64el ] + os: [ linux ] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.14.38: + resolution: { integrity: sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q== } + engines: { node: '>=12' } + cpu: [ ppc64 ] + os: [ linux ] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.14.38: + resolution: { integrity: sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ== } + engines: { node: '>=12' } + cpu: [ riscv64 ] + os: [ linux ] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.38: + resolution: { integrity: sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ== } + engines: { node: '>=12' } + cpu: [ s390x ] + os: [ linux ] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.14.38: + resolution: { integrity: sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q== } + engines: { node: '>=12' } + cpu: [ x64 ] + os: [ netbsd ] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.14.38: + resolution: { integrity: sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ== } + engines: { node: '>=12' } + cpu: [ x64 ] + os: [ openbsd ] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.14.38: + resolution: { integrity: sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA== } + engines: { node: '>=12' } + cpu: [ x64 ] + os: [ sunos ] + requiresBuild: true + dev: true + optional: true + + /esbuild-wasm/0.14.38: + resolution: { integrity: sha512-mObTw5/3+KIOTShVgk3fuEn+INnHgOSbWJuGkInEZTWpUOh/+TCSgRxl5cDon4OkoaLU5rWm7R7Dkl/mJv8SGw== } + engines: { node: '>=12' } + hasBin: true + dev: true + + /esbuild-windows-32/0.14.38: + resolution: { integrity: sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw== } + engines: { node: '>=12' } + cpu: [ ia32 ] + os: [ win32 ] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.14.38: + resolution: { integrity: sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw== } + engines: { node: '>=12' } + cpu: [ x64 ] + os: [ win32 ] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.14.38: + resolution: { integrity: sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw== } + engines: { node: '>=12' } + cpu: [ arm64 ] + os: [ win32 ] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.14.38: + resolution: { integrity: sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA== } + engines: { node: '>=12' } + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-64: 0.14.38 + esbuild-android-arm64: 0.14.38 + esbuild-darwin-64: 0.14.38 + esbuild-darwin-arm64: 0.14.38 + esbuild-freebsd-64: 0.14.38 + esbuild-freebsd-arm64: 0.14.38 + esbuild-linux-32: 0.14.38 + esbuild-linux-64: 0.14.38 + esbuild-linux-arm: 0.14.38 + esbuild-linux-arm64: 0.14.38 + esbuild-linux-mips64le: 0.14.38 + esbuild-linux-ppc64le: 0.14.38 + esbuild-linux-riscv64: 0.14.38 + esbuild-linux-s390x: 0.14.38 + esbuild-netbsd-64: 0.14.38 + esbuild-openbsd-64: 0.14.38 + esbuild-sunos-64: 0.14.38 + esbuild-windows-32: 0.14.38 + esbuild-windows-64: 0.14.38 + esbuild-windows-arm64: 0.14.38 + dev: true + + /escalade/3.1.1: + resolution: { integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== } + engines: { node: '>=6' } + dev: true + + /escape-html/1.0.3: + resolution: { integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== } + dev: true + + /escape-string-regexp/1.0.5: + resolution: { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== } + engines: { node: '>=0.8.0' } + dev: true + + /escape-string-regexp/4.0.0: + resolution: { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } + engines: { node: '>=10' } + dev: true + + /eslint-scope/5.1.1: + resolution: { integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== } + engines: { node: '>=8.0.0' } + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.1: + resolution: { integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.19.0: + resolution: { integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== } + engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.19.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: { integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== } + engines: { node: '>=10' } + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: { integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /eslint/8.19.0: + resolution: { integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.0 + '@humanwhocodes/config-array': 0.9.5 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.19.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.2 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.16.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/9.3.2: + resolution: { integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 + eslint-visitor-keys: 3.3.0 + dev: true + + /esprima/4.0.1: + resolution: { integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== } + engines: { node: '>=4' } + hasBin: true + dev: true + + /esquery/1.4.0: + resolution: { integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== } + engines: { node: '>=0.10' } + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: { integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== } + engines: { node: '>=4.0' } + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: { integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== } + engines: { node: '>=4.0' } + dev: true + + /estraverse/5.3.0: + resolution: { integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== } + engines: { node: '>=4.0' } + dev: true + + /esutils/2.0.3: + resolution: { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== } + engines: { node: '>=0.10.0' } + dev: true + + /etag/1.8.1: + resolution: { integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== } + engines: { node: '>= 0.6' } + dev: true + + /eventemitter-asyncresource/1.0.0: + resolution: { integrity: sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ== } + dev: true + + /eventemitter3/4.0.7: + resolution: { integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== } + dev: true + + /events/3.3.0: + resolution: { integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== } + engines: { node: '>=0.8.x' } + dev: true + + /execa/5.1.1: + resolution: { integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== } + engines: { node: '>=10' } + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /exit/0.1.2: + resolution: { integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== } + engines: { node: '>= 0.8.0' } + dev: true + + /express/4.18.1: + resolution: { integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== } + engines: { node: '>= 0.10.0' } + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.0 + 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.10.3 + 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 + transitivePeerDependencies: + - supports-color + dev: true + + /extend/3.0.2: + resolution: { integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== } + dev: true + + /external-editor/3.1.0: + resolution: { integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== } + engines: { node: '>=4' } + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extsprintf/1.3.0: + resolution: { integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== } + engines: { '0': node >=0.6.0 } + dev: true + + /fast-deep-equal/3.1.3: + resolution: { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== } + dev: true + + /fast-glob/3.2.11: + resolution: { integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== } + engines: { node: '>=8.6.0' } + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== } + dev: true + + /fast-levenshtein/2.0.6: + resolution: { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== } + dev: true + + /fastq/1.13.0: + resolution: { integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== } + dependencies: + reusify: 1.0.4 + dev: true + + /faye-websocket/0.11.4: + resolution: { integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== } + engines: { node: '>=0.8.0' } + dependencies: + websocket-driver: 0.7.4 + dev: true + + /figures/3.2.0: + resolution: { integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== } + engines: { node: '>=8' } + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache/6.0.1: + resolution: { integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range/7.0.1: + resolution: { integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== } + engines: { node: '>=8' } + dependencies: + to-regex-range: 5.0.1 + dev: true + + /filter-obj/1.1.0: + resolution: { integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== } + engines: { node: '>=0.10.0' } + dev: true + + /finalhandler/1.1.2: + resolution: { integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== } + engines: { node: '>= 0.8' } + 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 + transitivePeerDependencies: + - supports-color + dev: true + + /finalhandler/1.2.0: + resolution: { integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== } + engines: { node: '>= 0.8' } + 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 + transitivePeerDependencies: + - supports-color + dev: true + + /find-cache-dir/3.3.2: + resolution: { integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== } + engines: { node: '>=8' } + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + dev: true + + /find-up/4.1.0: + resolution: { integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== } + engines: { node: '>=8' } + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache/3.0.4: + resolution: { integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flatted: 3.2.6 + rimraf: 3.0.2 + dev: true + + /flatted/2.0.2: + resolution: { integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== } + dev: true + + /flatted/3.2.6: + resolution: { integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== } + dev: true + + /follow-redirects/1.13.3: + resolution: { integrity: sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== } + engines: { node: '>=4.0' } + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + + /forever-agent/0.6.1: + resolution: { integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== } + dev: true + + /form-data/2.3.3: + resolution: { integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== } + engines: { node: '>= 0.12' } + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /forwarded/0.2.0: + resolution: { integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== } + engines: { node: '>= 0.6' } + dev: true + + /fraction.js/4.2.0: + resolution: { integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== } + dev: true + + /fresh/0.5.2: + resolution: { integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== } + engines: { node: '>= 0.6' } + dev: true + + /fs-extra/8.1.0: + resolution: { integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== } + engines: { node: '>=6 <7 || >=8' } + dependencies: + graceful-fs: 4.2.6 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-minipass/2.1.0: + resolution: { integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.4 + dev: true + + /fs-monkey/1.0.3: + resolution: { integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== } + dev: true + + /fs.realpath/1.0.0: + resolution: { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } + dev: true + + /fsevents/2.3.2: + resolution: { integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [ darwin ] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: { integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== } + dev: true + + /functional-red-black-tree/1.0.1: + resolution: { integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== } + dev: true + + /gauge/4.0.4: + resolution: { integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + aproba: 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 + dev: true + + /gensync/1.0.0-beta.2: + resolution: { integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== } + engines: { node: '>=6.9.0' } + dev: true + + /get-caller-file/2.0.5: + resolution: { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } + engines: { node: 6.* || 8.* || >= 10.* } + dev: true + + /get-intrinsic/1.1.2: + resolution: { integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== } + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-package-type/0.1.0: + resolution: { integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== } + engines: { node: '>=8.0.0' } + dev: true + + /get-stream/6.0.1: + resolution: { integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== } + engines: { node: '>=10' } + dev: true + + /getpass/0.1.7: + resolution: { integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== } + dependencies: + assert-plus: 1.0.0 + dev: true + + /glob-parent/5.1.2: + resolution: { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== } + engines: { node: '>= 6' } + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== } + engines: { node: '>=10.13.0' } + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp/0.4.1: + resolution: { integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== } + dev: true + + /glob/7.1.6: + resolution: { integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/7.2.3: + resolution: { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/8.0.1: + resolution: { integrity: sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow== } + engines: { node: '>=12' } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.0 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/8.0.3: + resolution: { integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== } + engines: { node: '>=12' } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.0 + once: 1.4.0 + dev: true + + /globals/11.12.0: + resolution: { integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== } + engines: { node: '>=4' } + dev: true + + /globals/13.16.0: + resolution: { integrity: sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q== } + engines: { node: '>=8' } + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.1.0: + resolution: { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== } + engines: { node: '>=10' } + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby/12.2.0: + resolution: { integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA== } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + array-union: 3.0.1 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globby/5.0.0: + resolution: { integrity: sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ== } + engines: { node: '>=0.10.0' } + dependencies: + array-union: 1.0.2 + arrify: 1.0.1 + glob: 7.2.3 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + + /graceful-fs/4.2.10: + resolution: { integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== } + dev: true + + /graceful-fs/4.2.6: + resolution: { integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== } + dev: true + + /handle-thing/2.0.1: + resolution: { integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== } + dev: true + + /har-schema/2.0.0: + resolution: { integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== } + engines: { node: '>=4' } + dev: true + + /har-validator/5.1.5: + resolution: { integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== } + engines: { node: '>=6' } + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: true + + /has-ansi/2.0.0: + resolution: { integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== } + engines: { node: '>=0.10.0' } + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-flag/3.0.0: + resolution: { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== } + engines: { node: '>=4' } + dev: true + + /has-flag/4.0.0: + resolution: { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } + engines: { node: '>=8' } + dev: true + + /has-property-descriptors/1.0.0: + resolution: { integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== } + dependencies: + get-intrinsic: 1.1.2 + dev: true + + /has-symbols/1.0.3: + resolution: { integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== } + engines: { node: '>= 0.4' } + dev: true + + /has-unicode/2.0.1: + resolution: { integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== } + dev: true + + /has/1.0.3: + resolution: { integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== } + engines: { node: '>= 0.4.0' } + dependencies: + function-bind: 1.1.1 + dev: true + + /hdr-histogram-js/2.0.3: + resolution: { integrity: sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g== } + dependencies: + '@assemblyscript/loader': 0.10.1 + base64-js: 1.5.1 + pako: 1.0.11 + dev: true + + /hdr-histogram-percentiles-obj/3.0.0: + resolution: { integrity: sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw== } + dev: true + + /hosted-git-info/5.0.0: + resolution: { integrity: sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16 } + dependencies: + lru-cache: 7.12.0 + dev: true + + /hpack.js/2.1.6: + resolution: { integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== } + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.7 + wbuf: 1.7.3 + dev: true + + /html-entities/2.3.3: + resolution: { integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== } + dev: true + + /html-escaper/2.0.2: + resolution: { integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== } + dev: true + + /http-cache-semantics/4.1.0: + resolution: { integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== } + dev: true + + /http-deceiver/1.2.7: + resolution: { integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== } + dev: true + + /http-errors/1.6.3: + resolution: { integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== } + engines: { node: '>= 0.6' } + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + + /http-errors/1.7.2: + resolution: { integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== } + engines: { node: '>= 0.6' } + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + dev: true + + /http-errors/2.0.0: + resolution: { integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== } + engines: { node: '>= 0.8' } + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + + /http-parser-js/0.5.8: + resolution: { integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== } + dev: true + + /http-proxy-agent/4.0.1: + resolution: { integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== } + engines: { node: '>= 6' } + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-proxy-agent/5.0.0: + resolution: { integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== } + engines: { node: '>= 6' } + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-proxy-middleware/2.0.6_@types+express@4.17.13: + resolution: { integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== } + engines: { node: '>=12.0.0' } + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.13 + '@types/http-proxy': 1.17.9 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug + dev: true + + /http-proxy/1.18.1: + resolution: { integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== } + engines: { node: '>=8.0.0' } + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.13.3 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /http-signature/1.2.0: + resolution: { integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== } + engines: { node: '>=0.8', npm: '>=1.3.7' } + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.1 + sshpk: 1.16.1 + dev: true + + /https-proxy-agent/2.2.4: + resolution: { integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== } + engines: { node: '>= 4.5.0' } + dependencies: + agent-base: 4.3.0 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent/5.0.1: + resolution: { integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== } + engines: { node: '>= 6' } + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals/2.1.0: + resolution: { integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== } + engines: { node: '>=10.17.0' } + dev: true + + /humanize-ms/1.2.1: + resolution: { integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== } + dependencies: + ms: 2.1.3 + dev: true + + /iconv-lite/0.4.24: + resolution: { integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== } + engines: { node: '>=0.10.0' } + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite/0.6.3: + resolution: { integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== } + engines: { node: '>=0.10.0' } + dependencies: + safer-buffer: 2.1.2 + dev: true + + /icss-utils/5.1.0_postcss@8.4.13: + resolution: { integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.13 + dev: true + + /ieee754/1.2.1: + resolution: { integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== } + dev: true + + /ignore-walk/5.0.1: + resolution: { integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + minimatch: 5.1.0 + dev: true + + /ignore/5.2.0: + resolution: { integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== } + engines: { node: '>= 4' } + dev: true + + /image-size/0.5.5: + resolution: { integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== } + engines: { node: '>=0.10.0' } + hasBin: true + requiresBuild: true + dev: true + optional: true + + /immediate/3.0.6: + resolution: { integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== } + dev: true + + /immutable/4.1.0: + resolution: { integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== } + dev: true + + /import-fresh/3.3.0: + resolution: { integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== } + engines: { node: '>=6' } + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash/0.1.4: + resolution: { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } + engines: { node: '>=0.8.19' } + dev: true + + /indent-string/4.0.0: + resolution: { integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== } + engines: { node: '>=8' } + dev: true + + /infer-owner/1.0.4: + resolution: { integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== } + dev: true + + /inflight/1.0.6: + resolution: { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== } + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.3: + resolution: { integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== } + dev: true + + /inherits/2.0.4: + resolution: { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } + dev: true + + /ini/1.3.8: + resolution: { integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== } + dev: true + + /ini/3.0.0: + resolution: { integrity: sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dev: true + + /inquirer/8.2.4: + resolution: { integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== } + engines: { node: '>=12.0.0' } + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.5.5 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /ip/1.1.8: + resolution: { integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== } + dev: true + + /ipaddr.js/1.9.1: + resolution: { integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== } + engines: { node: '>= 0.10' } + dev: true + + /ipaddr.js/2.0.1: + resolution: { integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== } + engines: { node: '>= 10' } + dev: true + + /is-arrayish/0.2.1: + resolution: { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== } + dev: true + + /is-binary-path/2.1.0: + resolution: { integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== } + engines: { node: '>=8' } + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-core-module/2.9.0: + resolution: { integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== } + dependencies: + has: 1.0.3 + dev: true + + /is-docker/2.2.1: + resolution: { integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== } + engines: { node: '>=8' } + hasBin: true + dev: true + + /is-extglob/2.1.1: + resolution: { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== } + engines: { node: '>=0.10.0' } + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } + engines: { node: '>=8' } + dev: true + + /is-glob/4.0.3: + resolution: { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } + engines: { node: '>=0.10.0' } + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-interactive/1.0.0: + resolution: { integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== } + engines: { node: '>=8' } + dev: true + + /is-lambda/1.0.1: + resolution: { integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== } + dev: true + + /is-number/7.0.0: + resolution: { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== } + engines: { node: '>=0.12.0' } + dev: true + + /is-path-cwd/1.0.0: + resolution: { integrity: sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw== } + engines: { node: '>=0.10.0' } + dev: true + + /is-path-in-cwd/1.0.1: + resolution: { integrity: sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== } + engines: { node: '>=0.10.0' } + dependencies: + is-path-inside: 1.0.1 + dev: true + + /is-path-inside/1.0.1: + resolution: { integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g== } + engines: { node: '>=0.10.0' } + dependencies: + path-is-inside: 1.0.2 + dev: true + + /is-plain-obj/2.1.0: + resolution: { integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== } + engines: { node: '>=8' } + dev: true + + /is-plain-obj/3.0.0: + resolution: { integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== } + engines: { node: '>=10' } + dev: true + + /is-plain-object/2.0.4: + resolution: { integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== } + engines: { node: '>=0.10.0' } + dependencies: + isobject: 3.0.1 + dev: true + + /is-stream/2.0.1: + resolution: { integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== } + engines: { node: '>=8' } + dev: true + + /is-typedarray/1.0.0: + resolution: { integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== } + dev: true + + /is-unicode-supported/0.1.0: + resolution: { integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== } + engines: { node: '>=10' } + dev: true + + /is-what/3.14.1: + resolution: { integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== } + dev: true + + /is-wsl/2.2.0: + resolution: { integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== } + engines: { node: '>=8' } + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray/1.0.0: + resolution: { integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== } + dev: true + + /isbinaryfile/4.0.6: + resolution: { integrity: sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== } + engines: { node: '>= 8.0.0' } + dev: true + + /isexe/2.0.0: + resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== } + dev: true + + /isobject/3.0.1: + resolution: { integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== } + engines: { node: '>=0.10.0' } + dev: true + + /isstream/0.1.2: + resolution: { integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== } + dev: true + + /istanbul-lib-coverage/2.0.5: + resolution: { integrity: sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== } + engines: { node: '>=6' } + dev: true + + /istanbul-lib-coverage/3.0.0: + resolution: { integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== } + engines: { node: '>=8' } + dev: true + + /istanbul-lib-coverage/3.2.0: + resolution: { integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== } + engines: { node: '>=8' } + dev: true + + /istanbul-lib-instrument/5.2.0: + resolution: { integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== } + engines: { node: '>=8' } + dependencies: + '@babel/core': 7.17.10 + '@babel/parser': 7.18.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report/3.0.0: + resolution: { integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== } + engines: { node: '>=8' } + dependencies: + istanbul-lib-coverage: 3.0.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps/3.0.6: + resolution: { integrity: sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== } + engines: { node: '>=6' } + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 2.0.5 + make-dir: 2.1.0 + rimraf: 2.7.1 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports/3.0.2: + resolution: { integrity: sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== } + engines: { node: '>=8' } + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /jasmine-core/2.8.0: + resolution: { integrity: sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ== } + dev: true + + /jasmine-core/3.7.1: + resolution: { integrity: sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ== } + dev: true + + /jasmine-spec-reporter/6.0.0: + resolution: { integrity: sha512-MvTOVoMxDZAftQYBApIlSfKnGMzi9cj351nXeqtnZTuXffPlbONN31+Es7F+Ke4okUeQ2xISukt4U1npfzLVrQ== } + dependencies: + colors: 1.4.0 + dev: true + + /jasmine/2.8.0: + resolution: { integrity: sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw== } + hasBin: true + dependencies: + exit: 0.1.2 + glob: 7.2.3 + jasmine-core: 2.8.0 + dev: true + + /jasminewd2/2.2.0: + resolution: { integrity: sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg== } + engines: { node: '>= 6.9.x' } + dev: true + + /jest-worker/27.5.1: + resolution: { integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== } + engines: { node: '>= 10.13.0' } + dependencies: + '@types/node': 16.11.43 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /js-tokens/4.0.0: + resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } + dev: true + + /js-yaml/3.14.1: + resolution: { integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== } + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml/4.1.0: + resolution: { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== } + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsbn/0.1.1: + resolution: { integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== } + dev: true + + /jsesc/0.5.0: + resolution: { integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== } + hasBin: true + dev: true + + /jsesc/2.5.2: + resolution: { integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== } + engines: { node: '>=4' } + hasBin: true + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: { integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== } + dev: true + + /json-schema-traverse/0.4.1: + resolution: { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } + dev: true + + /json-schema-traverse/1.0.0: + resolution: { integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== } + dev: true + + /json-schema/0.2.3: + resolution: { integrity: sha512-a3xHnILGMtk+hDOqNwHzF6e2fNbiMrXZvxKQiEv2MlgQP+pjIOzqAmKYD2mDpXYE/44M7g+n9p2bKkYWDUcXCQ== } + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== } + dev: true + + /json-stringify-safe/5.0.1: + resolution: { integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== } + dev: true + + /json5/2.2.1: + resolution: { integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== } + engines: { node: '>=6' } + hasBin: true + dev: true + + /jsonc-parser/3.0.0: + resolution: { integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== } + dev: true + + /jsonfile/4.0.0: + resolution: { integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== } + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonparse/1.3.1: + resolution: { integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== } + engines: { '0': node >= 0.2.0 } + dev: true + + /jsprim/1.4.1: + resolution: { integrity: sha512-4Dj8Rf+fQ+/Pn7C5qeEX02op1WfOss3PKTE9Nsop3Dx+6UPxlm1dr/og7o2cRa5hNN07CACr4NFzRLtj/rjWog== } + engines: { '0': node >=0.6.0 } + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.2.3 + verror: 1.10.0 + dev: true + + /jszip/3.6.0: + resolution: { integrity: sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ== } + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.7 + set-immediate-shim: 1.0.1 + dev: true + + /karma-chrome-launcher/3.1.0: + resolution: { integrity: sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg== } + dependencies: + which: 1.3.1 + dev: true + + /karma-coverage-istanbul-reporter/3.0.3: + resolution: { integrity: sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw== } + dependencies: + istanbul-lib-coverage: 3.0.0 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 3.0.6 + istanbul-reports: 3.0.2 + minimatch: 3.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /karma-jasmine-html-reporter/1.5.4_mbeic5s3swplwzs2bjwmoofe5q: + resolution: { integrity: sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q== } + peerDependencies: + jasmine-core: '>=3.5' + karma: '>=0.9' + karma-jasmine: '>=1.1' + dependencies: + jasmine-core: 3.7.1 + karma: 6.3.1 + karma-jasmine: 4.0.1_karma@6.3.1 + dev: true + + /karma-jasmine/4.0.1_karma@6.3.1: + resolution: { integrity: sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw== } + engines: { node: '>= 10' } + peerDependencies: + karma: '*' + dependencies: + jasmine-core: 3.7.1 + karma: 6.3.1 + dev: true + + /karma-source-map-support/1.4.0: + resolution: { integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A== } + dependencies: + source-map-support: 0.5.21 + dev: true + + /karma/6.3.1: + resolution: { integrity: sha512-Is71g0f1dIpbLTXA+ULpev1i1soczQ1Dr8oum3zSmBFsDl3IWUlTLytsCb9os4v9xvUVWGDz0sCmLO4veANnSw== } + engines: { node: '>= 10' } + hasBin: true + dependencies: + body-parser: 1.19.0 + braces: 3.0.2 + chokidar: 3.5.1 + colors: 1.4.0 + connect: 3.7.0 + di: 0.0.1 + dom-serialize: 2.2.1 + glob: 7.1.6 + graceful-fs: 4.2.6 + http-proxy: 1.18.1 + isbinaryfile: 4.0.6 + lodash: 4.17.21 + log4js: 6.3.0 + mime: 2.5.2 + minimatch: 3.0.4 + qjobs: 1.2.0 + range-parser: 1.2.1 + rimraf: 3.0.2 + socket.io: 3.1.2 + source-map: 0.6.1 + tmp: 0.2.1 + ua-parser-js: 0.7.25 + yargs: 16.2.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /kind-of/6.0.3: + resolution: { integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== } + engines: { node: '>=0.10.0' } + dev: true + + /klona/2.0.5: + resolution: { integrity: sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== } + engines: { node: '>= 8' } + dev: true + + /less-loader/10.2.0_less@4.1.2+webpack@5.72.1: + resolution: { integrity: sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg== } + engines: { node: '>= 12.13.0' } + peerDependencies: + less: ^3.5.0 || ^4.0.0 + webpack: ^5.0.0 + dependencies: + klona: 2.0.5 + less: 4.1.2 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /less/4.1.2: + resolution: { integrity: sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA== } + engines: { node: '>=6' } + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.4.0 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.10 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 2.9.1 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /levn/0.4.1: + resolution: { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /license-webpack-plugin/4.0.2_webpack@5.72.1: + resolution: { integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw== } + peerDependencies: + webpack: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-sources: + optional: true + dependencies: + webpack: 5.72.1_esbuild@0.14.38 + webpack-sources: 3.2.3 + dev: true + + /lie/3.3.0: + resolution: { integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== } + dependencies: + immediate: 3.0.6 + dev: true + + /lines-and-columns/1.2.4: + resolution: { integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== } + dev: true + + /loader-runner/4.3.0: + resolution: { integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== } + engines: { node: '>=6.11.5' } + dev: true + + /loader-utils/2.0.2: + resolution: { integrity: sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== } + engines: { node: '>=8.9.0' } + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.1 + dev: true + + /loader-utils/3.2.0: + resolution: { integrity: sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ== } + engines: { node: '>= 12.13.0' } + dev: true + + /locate-path/5.0.0: + resolution: { integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== } + engines: { node: '>=8' } + dependencies: + p-locate: 4.1.0 + dev: true + + /lodash.debounce/4.0.8: + resolution: { integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== } + dev: true + + /lodash.merge/4.6.2: + resolution: { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } + dev: true + + /lodash.sortby/4.7.0: + resolution: { integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== } + dev: true + + /lodash/4.17.21: + resolution: { integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== } + dev: true + + /log-symbols/4.1.0: + resolution: { integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== } + engines: { node: '>=10' } + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log4js/6.3.0: + resolution: { integrity: sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== } + engines: { node: '>=8.0' } + dependencies: + date-format: 3.0.0 + debug: 4.3.4 + flatted: 2.0.2 + rfdc: 1.3.0 + streamroller: 2.2.4 + transitivePeerDependencies: + - supports-color + dev: true + + /lru-cache/6.0.0: + resolution: { integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== } + engines: { node: '>=10' } + dependencies: + yallist: 4.0.0 + dev: true + + /lru-cache/7.12.0: + resolution: { integrity: sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw== } + engines: { node: '>=12' } + dev: true + + /magic-string/0.26.1: + resolution: { integrity: sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg== } + engines: { node: '>=12' } + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string/0.26.2: + resolution: { integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A== } + engines: { node: '>=12' } + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /make-dir/2.1.0: + resolution: { integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== } + engines: { node: '>=6' } + dependencies: + pify: 4.0.1 + semver: 5.7.1 + dev: true + + /make-dir/3.1.0: + resolution: { integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== } + engines: { node: '>=8' } + dependencies: + semver: 6.3.0 + dev: true + + /make-error/1.3.6: + resolution: { integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== } + dev: true + + /make-fetch-happen/10.1.8: + resolution: { integrity: sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + agentkeepalive: 4.2.1 + cacache: 16.1.1 + http-cache-semantics: 4.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.12.0 + minipass: 3.3.4 + minipass-collect: 1.0.2 + minipass-fetch: 2.1.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: 9.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /make-fetch-happen/9.1.0: + resolution: { integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== } + engines: { node: '>= 10' } + dependencies: + agentkeepalive: 4.2.1 + cacache: 15.3.0 + http-cache-semantics: 4.1.0 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.3.4 + minipass-collect: 1.0.2 + minipass-fetch: 1.4.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /media-typer/0.3.0: + resolution: { integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= } + engines: { node: '>= 0.6' } + dev: true + + /memfs/3.4.7: + resolution: { integrity: sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw== } + engines: { node: '>= 4.0.0' } + dependencies: + fs-monkey: 1.0.3 + dev: true + + /merge-descriptors/1.0.1: + resolution: { integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= } + dev: true + + /merge-stream/2.0.0: + resolution: { integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== } + dev: true + + /merge2/1.4.1: + resolution: { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== } + engines: { node: '>= 8' } + dev: true + + /methods/1.1.2: + resolution: { integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== } + engines: { node: '>= 0.6' } + dev: true + + /micromatch/4.0.5: + resolution: { integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== } + engines: { node: '>=8.6' } + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db/1.52.0: + resolution: { integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== } + engines: { node: '>= 0.6' } + dev: true + + /mime-types/2.1.35: + resolution: { integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.52.0 + dev: true + + /mime/1.6.0: + resolution: { integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== } + engines: { node: '>=4' } + hasBin: true + dev: true + + /mime/2.5.2: + resolution: { integrity: sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== } + engines: { node: '>=4.0.0' } + hasBin: true + dev: true + + /mimic-fn/2.1.0: + resolution: { integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== } + engines: { node: '>=6' } + dev: true + + /mini-css-extract-plugin/2.6.0_webpack@5.72.1: + resolution: { integrity: sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w== } + engines: { node: '>= 12.13.0' } + peerDependencies: + webpack: ^5.0.0 + dependencies: + schema-utils: 4.0.0 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /minimalistic-assert/1.0.1: + resolution: { integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== } + dev: true + + /minimatch/3.0.4: + resolution: { integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/3.1.2: + resolution: { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/5.0.1: + resolution: { integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== } + engines: { node: '>=10' } + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch/5.1.0: + resolution: { integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== } + engines: { node: '>=10' } + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist/1.2.5: + resolution: { integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== } + dev: true + + /minipass-collect/1.0.2: + resolution: { integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.4 + dev: true + + /minipass-fetch/1.4.1: + resolution: { integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== } + engines: { node: '>=8' } + dependencies: + minipass: 3.3.4 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: true + + /minipass-fetch/2.1.0: + resolution: { integrity: sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + minipass: 3.3.4 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: true + + /minipass-flush/1.0.5: + resolution: { integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.4 + dev: true + + /minipass-json-stream/1.0.1: + resolution: { integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== } + dependencies: + jsonparse: 1.3.1 + minipass: 3.3.4 + dev: true + + /minipass-pipeline/1.2.4: + resolution: { integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== } + engines: { node: '>=8' } + dependencies: + minipass: 3.3.4 + dev: true + + /minipass-sized/1.0.3: + resolution: { integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== } + engines: { node: '>=8' } + dependencies: + minipass: 3.3.4 + dev: true + + /minipass/3.3.4: + resolution: { integrity: sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== } + engines: { node: '>=8' } + dependencies: + yallist: 4.0.0 + dev: true + + /minizlib/2.1.2: + resolution: { integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.4 + yallist: 4.0.0 + dev: true + + /mkdirp/1.0.4: + resolution: { integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== } + engines: { node: '>=10' } + hasBin: true + dev: true + + /ms/2.0.0: + resolution: { integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== } + dev: true + + /ms/2.1.2: + resolution: { integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== } + dev: true + + /ms/2.1.3: + resolution: { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== } + dev: true + + /multicast-dns/7.2.5: + resolution: { integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== } + hasBin: true + dependencies: + dns-packet: 5.4.0 + thunky: 1.1.0 + dev: true + + /mute-stream/0.0.8: + resolution: { integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== } + dev: true + + /nanoid/3.3.4: + resolution: { integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: true + + /natural-compare/1.4.0: + resolution: { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== } + dev: true + + /needle/2.9.1: + resolution: { integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== } + engines: { node: '>= 4.4.x' } + hasBin: true + requiresBuild: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.2.4 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + /negotiator/0.6.2: + resolution: { integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== } + engines: { node: '>= 0.6' } + dev: true + + /negotiator/0.6.3: + resolution: { integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== } + engines: { node: '>= 0.6' } + dev: true + + /neo-async/2.6.2: + resolution: { integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== } + dev: true + + /nice-napi/1.0.2: + resolution: { integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA== } + os: [ '!win32' ] + requiresBuild: true + dependencies: + node-addon-api: 3.2.1 + node-gyp-build: 4.5.0 + dev: true + optional: true + + /node-addon-api/3.2.1: + resolution: { integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== } + requiresBuild: true + dev: true + optional: true + + /node-forge/1.3.1: + resolution: { integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== } + engines: { node: '>= 6.13.0' } + dev: true + + /node-gyp-build/4.5.0: + resolution: { integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== } + hasBin: true + requiresBuild: true + dev: true + optional: true + + /node-gyp/8.4.1: + resolution: { integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== } + engines: { node: '>= 10.12.0' } + hasBin: true + dependencies: + env-paths: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.10 + make-fetch-happen: 9.1.0 + nopt: 5.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.3.7 + tar: 6.1.11 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /node-releases/2.0.6: + resolution: { integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== } + dev: true + + /nopt/5.0.0: + resolution: { integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== } + engines: { node: '>=6' } + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + + /normalize-package-data/4.0.0: + resolution: { integrity: sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16 } + dependencies: + hosted-git-info: 5.0.0 + is-core-module: 2.9.0 + semver: 7.3.7 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path/3.0.0: + resolution: { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== } + engines: { node: '>=0.10.0' } + dev: true + + /normalize-range/0.1.2: + resolution: { integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== } + engines: { node: '>=0.10.0' } + dev: true + + /npm-bundled/1.1.2: + resolution: { integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== } + dependencies: + npm-normalize-package-bin: 1.0.1 + dev: true + + /npm-install-checks/5.0.0: + resolution: { integrity: sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + semver: 7.3.7 + dev: true + + /npm-normalize-package-bin/1.0.1: + resolution: { integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== } + dev: true + + /npm-package-arg/9.0.2: + resolution: { integrity: sha512-v/miORuX8cndiOheW8p2moNuPJ7QhcFh9WGlTorruG8hXSA23vMTEp5hTCmDxic0nD8KHhj/NQgFuySD3GYY3g== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + hosted-git-info: 5.0.0 + semver: 7.3.7 + validate-npm-package-name: 4.0.0 + dev: true + + /npm-packlist/5.1.1: + resolution: { integrity: sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + hasBin: true + dependencies: + glob: 8.0.3 + ignore-walk: 5.0.1 + npm-bundled: 1.1.2 + npm-normalize-package-bin: 1.0.1 + dev: true + + /npm-pick-manifest/7.0.1: + resolution: { integrity: sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + npm-install-checks: 5.0.0 + npm-normalize-package-bin: 1.0.1 + npm-package-arg: 9.0.2 + semver: 7.3.7 + dev: true + + /npm-registry-fetch/13.1.1: + resolution: { integrity: sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + make-fetch-happen: 10.1.8 + minipass: 3.3.4 + minipass-fetch: 2.1.0 + minipass-json-stream: 1.0.1 + minizlib: 2.1.2 + npm-package-arg: 9.0.2 + proc-log: 2.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /npm-run-path/4.0.1: + resolution: { integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== } + engines: { node: '>=8' } + dependencies: + path-key: 3.1.1 + dev: true + + /npmlog/6.0.2: + resolution: { integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + are-we-there-yet: 3.0.0 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + dev: true + + /nth-check/2.1.1: + resolution: { integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== } + dependencies: + boolbase: 1.0.0 + dev: true + + /oauth-sign/0.9.0: + resolution: { integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== } + dev: true + + /object-assign/4.1.1: + resolution: { integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== } + engines: { node: '>=0.10.0' } + dev: true + + /object-inspect/1.12.2: + resolution: { integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== } + dev: true + + /object-keys/1.1.1: + resolution: { integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== } + engines: { node: '>= 0.4' } + dev: true + + /object.assign/4.1.2: + resolution: { integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /obuf/1.1.2: + resolution: { integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== } + dev: true + + /on-finished/2.3.0: + resolution: { integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== } + engines: { node: '>= 0.8' } + dependencies: + ee-first: 1.1.1 + dev: true + + /on-finished/2.4.1: + resolution: { integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== } + engines: { node: '>= 0.8' } + dependencies: + ee-first: 1.1.1 + dev: true + + /on-headers/1.0.2: + resolution: { integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== } + engines: { node: '>= 0.8' } + dev: true + + /once/1.4.0: + resolution: { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime/5.1.2: + resolution: { integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== } + engines: { node: '>=6' } + dependencies: + mimic-fn: 2.1.0 + dev: true + + /open/8.4.0: + resolution: { integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== } + engines: { node: '>=12' } + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /optionator/0.9.1: + resolution: { integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== } + engines: { node: '>= 0.8.0' } + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /ora/5.4.1: + resolution: { integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== } + engines: { node: '>=10' } + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /os-tmpdir/1.0.2: + resolution: { integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== } + engines: { node: '>=0.10.0' } + dev: true + + /p-limit/2.3.0: + resolution: { integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== } + engines: { node: '>=6' } + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate/4.1.0: + resolution: { integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== } + engines: { node: '>=8' } + dependencies: + p-limit: 2.3.0 + dev: true + + /p-map/4.0.0: + resolution: { integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== } + engines: { node: '>=10' } + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-retry/4.6.2: + resolution: { integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== } + engines: { node: '>=8' } + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + + /p-try/2.2.0: + resolution: { integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== } + engines: { node: '>=6' } + dev: true + + /pacote/13.3.0: + resolution: { integrity: sha512-auhJAUlfC2TALo6I0s1vFoPvVFgWGx+uz/PnIojTTgkGwlK3Np8sGJ0ghfFhiuzJXTZoTycMLk8uLskdntPbDw== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + hasBin: true + dependencies: + '@npmcli/git': 3.0.1 + '@npmcli/installed-package-contents': 1.0.7 + '@npmcli/promise-spawn': 3.0.0 + '@npmcli/run-script': 3.0.3 + cacache: 16.1.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + infer-owner: 1.0.4 + minipass: 3.3.4 + mkdirp: 1.0.4 + npm-package-arg: 9.0.2 + npm-packlist: 5.1.1 + npm-pick-manifest: 7.0.1 + npm-registry-fetch: 13.1.1 + proc-log: 2.0.1 + promise-retry: 2.0.1 + read-package-json: 5.0.1 + read-package-json-fast: 2.0.3 + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.1.11 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /pako/1.0.11: + resolution: { integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== } + dev: true + + /parent-module/1.0.1: + resolution: { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== } + engines: { node: '>=6' } + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } + engines: { node: '>=8' } + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-node-version/1.0.1: + resolution: { integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== } + engines: { node: '>= 0.10' } + dev: true + + /parse5-html-rewriting-stream/6.0.1: + resolution: { integrity: sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg== } + dependencies: + parse5: 6.0.1 + parse5-sax-parser: 6.0.1 + dev: true + + /parse5-htmlparser2-tree-adapter/6.0.1: + resolution: { integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== } + dependencies: + parse5: 6.0.1 + dev: true + + /parse5-sax-parser/6.0.1: + resolution: { integrity: sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg== } + dependencies: + parse5: 6.0.1 + dev: true + + /parse5/5.1.1: + resolution: { integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== } + requiresBuild: true + dev: false + optional: true + + /parse5/6.0.1: + resolution: { integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== } + dev: true + + /parseurl/1.3.3: + resolution: { integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== } + engines: { node: '>= 0.8' } + dev: true + + /path-exists/4.0.0: + resolution: { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== } + engines: { node: '>=8' } + dev: true + + /path-is-absolute/1.0.1: + resolution: { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== } + engines: { node: '>=0.10.0' } + dev: true + + /path-is-inside/1.0.2: + resolution: { integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== } + dev: true + + /path-key/3.1.1: + resolution: { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== } + engines: { node: '>=8' } + dev: true + + /path-parse/1.0.7: + resolution: { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== } + dev: true + + /path-to-regexp/0.1.7: + resolution: { integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= } + dev: true + + /path-type/4.0.0: + resolution: { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } + engines: { node: '>=8' } + dev: true + + /performance-now/2.1.0: + resolution: { integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== } + dev: true + + /picocolors/1.0.0: + resolution: { integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== } + dev: true + + /picomatch/2.3.1: + resolution: { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== } + engines: { node: '>=8.6' } + dev: true + + /pify/2.3.0: + resolution: { integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== } + engines: { node: '>=0.10.0' } + dev: true + + /pify/4.0.1: + resolution: { integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== } + engines: { node: '>=6' } + dev: true + + /pinkie-promise/2.0.1: + resolution: { integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== } + engines: { node: '>=0.10.0' } + dependencies: + pinkie: 2.0.4 + dev: true + + /pinkie/2.0.4: + resolution: { integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== } + engines: { node: '>=0.10.0' } + dev: true + + /piscina/3.2.0: + resolution: { integrity: sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA== } + dependencies: + eventemitter-asyncresource: 1.0.0 + hdr-histogram-js: 2.0.3 + hdr-histogram-percentiles-obj: 3.0.0 + optionalDependencies: + nice-napi: 1.0.2 + dev: true + + /pkg-dir/4.2.0: + resolution: { integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== } + engines: { node: '>=8' } + dependencies: + find-up: 4.1.0 + dev: true + + /postcss-attribute-case-insensitive/5.0.2_postcss@8.4.13: + resolution: { integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-clamp/4.1.0_postcss@8.4.13: + resolution: { integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== } + engines: { node: '>=7.6.0' } + peerDependencies: + postcss: ^8.4.6 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-color-functional-notation/4.2.4_postcss@8.4.13: + resolution: { integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-color-hex-alpha/8.0.4_postcss@8.4.13: + resolution: { integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-color-rebeccapurple/7.1.1_postcss@8.4.13: + resolution: { integrity: sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-custom-media/8.0.2_postcss@8.4.13: + resolution: { integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-custom-properties/12.1.8_postcss@8.4.13: + resolution: { integrity: sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-custom-selectors/6.0.3_postcss@8.4.13: + resolution: { integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-dir-pseudo-class/6.0.5_postcss@8.4.13: + resolution: { integrity: sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-double-position-gradients/3.1.2_postcss@8.4.13: + resolution: { integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.13 + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-env-function/4.0.6_postcss@8.4.13: + resolution: { integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-focus-visible/6.0.4_postcss@8.4.13: + resolution: { integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-focus-within/5.0.4_postcss@8.4.13: + resolution: { integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-font-variant/5.0.0_postcss@8.4.13: + resolution: { integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.13 + dev: true + + /postcss-gap-properties/3.0.4_postcss@8.4.13: + resolution: { integrity: sha512-PaEM4AUQY7uomyuVVXsIntdo4eT8VkBMrSinQxvXuMcJ1z3RHlFw4Kqef2X+rRVz3WHaYCa0EEtwousBT6vcIA== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + dev: true + + /postcss-image-set-function/4.0.7_postcss@8.4.13: + resolution: { integrity: sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-import/14.1.0_postcss@8.4.13: + resolution: { integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== } + engines: { node: '>=10.0.0' } + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.1 + dev: true + + /postcss-initial/4.0.1_postcss@8.4.13: + resolution: { integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== } + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.13 + dev: true + + /postcss-lab-function/4.2.1_postcss@8.4.13: + resolution: { integrity: sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.13 + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-loader/6.2.1_yokl3cbwhadljnh75p6ymh6bce: + resolution: { integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q== } + engines: { node: '>= 12.13.0' } + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + dependencies: + cosmiconfig: 7.0.1 + klona: 2.0.5 + postcss: 8.4.13 + semver: 7.3.7 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /postcss-logical/5.0.4_postcss@8.4.13: + resolution: { integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.13 + dev: true + + /postcss-media-minmax/5.0.0_postcss@8.4.13: + resolution: { integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== } + engines: { node: '>=10.0.0' } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.13 + dev: true + + /postcss-modules-extract-imports/3.0.0_postcss@8.4.13: + resolution: { integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.13 + dev: true + + /postcss-modules-local-by-default/4.0.0_postcss@8.4.13: + resolution: { integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.13 + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope/3.0.0_postcss@8.4.13: + resolution: { integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-modules-values/4.0.0_postcss@8.4.13: + resolution: { integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== } + engines: { node: ^10 || ^12 || >= 14 } + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.13 + postcss: 8.4.13 + dev: true + + /postcss-nesting/10.1.10_postcss@8.4.13: + resolution: { integrity: sha512-lqd7LXCq0gWc0wKXtoKDru5wEUNjm3OryLVNRZ8OnW8km6fSNUuFrjEhU3nklxXE2jvd4qrox566acgh+xQt8w== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/selector-specificity': 2.0.2_qiplrb533afbljv7sbepwo7yse + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-opacity-percentage/1.1.2: + resolution: { integrity: sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w== } + engines: { node: ^12 || ^14 || >=16 } + dev: true + + /postcss-overflow-shorthand/3.0.4_postcss@8.4.13: + resolution: { integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-page-break/3.0.4_postcss@8.4.13: + resolution: { integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== } + peerDependencies: + postcss: ^8 + dependencies: + postcss: 8.4.13 + dev: true + + /postcss-place/7.0.5_postcss@8.4.13: + resolution: { integrity: sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-preset-env/7.5.0_postcss@8.4.13: + resolution: { integrity: sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-color-function': 1.1.1_postcss@8.4.13 + '@csstools/postcss-font-format-keywords': 1.0.1_postcss@8.4.13 + '@csstools/postcss-hwb-function': 1.0.2_postcss@8.4.13 + '@csstools/postcss-ic-unit': 1.0.1_postcss@8.4.13 + '@csstools/postcss-is-pseudo-class': 2.0.7_postcss@8.4.13 + '@csstools/postcss-normalize-display-values': 1.0.1_postcss@8.4.13 + '@csstools/postcss-oklab-function': 1.1.1_postcss@8.4.13 + '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.13 + '@csstools/postcss-stepped-value-functions': 1.0.1_postcss@8.4.13 + '@csstools/postcss-unset-value': 1.0.2_postcss@8.4.13 + autoprefixer: 10.4.7_postcss@8.4.13 + browserslist: 4.21.1 + css-blank-pseudo: 3.0.3_postcss@8.4.13 + css-has-pseudo: 3.0.4_postcss@8.4.13 + css-prefers-color-scheme: 6.0.3_postcss@8.4.13 + cssdb: 6.6.3 + postcss: 8.4.13 + postcss-attribute-case-insensitive: 5.0.2_postcss@8.4.13 + postcss-clamp: 4.1.0_postcss@8.4.13 + postcss-color-functional-notation: 4.2.4_postcss@8.4.13 + postcss-color-hex-alpha: 8.0.4_postcss@8.4.13 + postcss-color-rebeccapurple: 7.1.1_postcss@8.4.13 + postcss-custom-media: 8.0.2_postcss@8.4.13 + postcss-custom-properties: 12.1.8_postcss@8.4.13 + postcss-custom-selectors: 6.0.3_postcss@8.4.13 + postcss-dir-pseudo-class: 6.0.5_postcss@8.4.13 + postcss-double-position-gradients: 3.1.2_postcss@8.4.13 + postcss-env-function: 4.0.6_postcss@8.4.13 + postcss-focus-visible: 6.0.4_postcss@8.4.13 + postcss-focus-within: 5.0.4_postcss@8.4.13 + postcss-font-variant: 5.0.0_postcss@8.4.13 + postcss-gap-properties: 3.0.4_postcss@8.4.13 + postcss-image-set-function: 4.0.7_postcss@8.4.13 + postcss-initial: 4.0.1_postcss@8.4.13 + postcss-lab-function: 4.2.1_postcss@8.4.13 + postcss-logical: 5.0.4_postcss@8.4.13 + postcss-media-minmax: 5.0.0_postcss@8.4.13 + postcss-nesting: 10.1.10_postcss@8.4.13 + postcss-opacity-percentage: 1.1.2 + postcss-overflow-shorthand: 3.0.4_postcss@8.4.13 + postcss-page-break: 3.0.4_postcss@8.4.13 + postcss-place: 7.0.5_postcss@8.4.13 + postcss-pseudo-class-any-link: 7.1.6_postcss@8.4.13 + postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.13 + postcss-selector-not: 5.0.0_postcss@8.4.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-pseudo-class-any-link/7.1.6_postcss@8.4.13: + resolution: { integrity: sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== } + engines: { node: ^12 || ^14 || >=16 } + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: 8.4.13 + postcss-selector-parser: 6.0.10 + dev: true + + /postcss-replace-overflow-wrap/4.0.0_postcss@8.4.13: + resolution: { integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== } + peerDependencies: + postcss: ^8.0.3 + dependencies: + postcss: 8.4.13 + dev: true + + /postcss-selector-not/5.0.0_postcss@8.4.13: + resolution: { integrity: sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ== } + peerDependencies: + postcss: ^8.1.0 + dependencies: + balanced-match: 1.0.2 + postcss: 8.4.13 + dev: true + + /postcss-selector-parser/6.0.10: + resolution: { integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== } + engines: { node: '>=4' } + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser/4.2.0: + resolution: { integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== } + dev: true + + /postcss/8.4.13: + resolution: { integrity: sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA== } + engines: { node: ^10 || ^12 || >=14 } + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls/1.2.1: + resolution: { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } + engines: { node: '>= 0.8.0' } + dev: true + + /prepend-http/3.0.1: + resolution: { integrity: sha512-BLxfZh+m6UiAiCPZFJ4+vYoL7NrRs5XgCTRrjseATAggXhdZKKxn+JUNmuVYWY23bDHgaEHodxw8mnmtVEDtHw== } + engines: { node: '>=8' } + dev: true + + /pretty-bytes/5.6.0: + resolution: { integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== } + engines: { node: '>=6' } + dev: true + + /proc-log/2.0.1: + resolution: { integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dev: true + + /process-nextick-args/2.0.1: + resolution: { integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== } + dev: true + + /promise-inflight/1.0.1: + resolution: { integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== } + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: true + + /promise-retry/2.0.1: + resolution: { integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== } + engines: { node: '>=10' } + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true + + /protractor/7.0.0: + resolution: { integrity: sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw== } + engines: { node: '>=10.13.x' } + hasBin: true + dependencies: + '@types/q': 0.0.32 + '@types/selenium-webdriver': 3.0.17 + blocking-proxy: 1.0.1 + browserstack: 1.6.1 + chalk: 1.1.3 + glob: 7.1.6 + jasmine: 2.8.0 + jasminewd2: 2.2.0 + q: 1.4.1 + saucelabs: 1.5.0 + selenium-webdriver: 3.6.0 + source-map-support: 0.4.18 + webdriver-js-extender: 2.1.0 + webdriver-manager: 12.1.8 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + dev: true + + /proxy-addr/2.0.7: + resolution: { integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== } + engines: { node: '>= 0.10' } + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: true + + /prr/1.0.1: + resolution: { integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== } + dev: true + optional: true + + /psl/1.8.0: + resolution: { integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== } + dev: true + + /punycode/2.1.1: + resolution: { integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== } + engines: { node: '>=6' } + dev: true + + /q/1.4.1: + resolution: { integrity: sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg== } + engines: { node: '>=0.6.0', teleport: '>=0.2.0' } + dev: true + + /qjobs/1.2.0: + resolution: { integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== } + engines: { node: '>=0.9' } + dev: true + + /qs/6.10.3: + resolution: { integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== } + engines: { node: '>=0.6' } + dependencies: + side-channel: 1.0.4 + dev: true + + /qs/6.5.3: + resolution: { integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== } + engines: { node: '>=0.6' } + dev: true + + /qs/6.7.0: + resolution: { integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== } + engines: { node: '>=0.6' } + dev: true + + /query-string/6.14.1: + resolution: { integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== } + engines: { node: '>=6' } + dependencies: + decode-uri-component: 0.2.0 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + dev: true + + /queue-microtask/1.2.3: + resolution: { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== } + dev: true + + /randombytes/2.1.0: + resolution: { integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /range-parser/1.2.1: + resolution: { integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== } + engines: { node: '>= 0.6' } + dev: true + + /raw-body/2.4.0: + resolution: { integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== } + engines: { node: '>= 0.8' } + dependencies: + bytes: 3.1.0 + http-errors: 1.7.2 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + + /raw-body/2.5.1: + resolution: { integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== } + engines: { node: '>= 0.8' } + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + + /read-cache/1.0.0: + resolution: { integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== } + dependencies: + pify: 2.3.0 + dev: true + + /read-package-json-fast/2.0.3: + resolution: { integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== } + engines: { node: '>=10' } + dependencies: + json-parse-even-better-errors: 2.3.1 + npm-normalize-package-bin: 1.0.1 + dev: true + + /read-package-json/5.0.1: + resolution: { integrity: sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + glob: 8.0.3 + json-parse-even-better-errors: 2.3.1 + normalize-package-data: 4.0.0 + npm-normalize-package-bin: 1.0.1 + dev: true + + /readable-stream/2.3.7: + resolution: { integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== } + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream/3.6.0: + resolution: { integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== } + engines: { node: '>= 6' } + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp/3.5.0: + resolution: { integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== } + engines: { node: '>=8.10.0' } + dependencies: + picomatch: 2.3.1 + dev: true + + /readdirp/3.6.0: + resolution: { integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== } + engines: { node: '>=8.10.0' } + dependencies: + picomatch: 2.3.1 + dev: true + + /reflect-metadata/0.1.13: + resolution: { integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== } + dev: true + + /regenerate-unicode-properties/10.0.1: + resolution: { integrity: sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== } + engines: { node: '>=4' } + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate/1.4.2: + resolution: { integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== } + dev: true + + /regenerator-runtime/0.13.9: + resolution: { integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== } + dev: true + + /regenerator-transform/0.15.0: + resolution: { integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== } + dependencies: + '@babel/runtime': 7.17.9 + dev: true + + /regex-parser/2.2.11: + resolution: { integrity: sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== } + dev: true + + /regexpp/3.2.0: + resolution: { integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== } + engines: { node: '>=8' } + dev: true + + /regexpu-core/5.1.0: + resolution: { integrity: sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== } + engines: { node: '>=4' } + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.0.1 + regjsgen: 0.6.0 + regjsparser: 0.8.4 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.0.0 + dev: true + + /regjsgen/0.6.0: + resolution: { integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== } + dev: true + + /regjsparser/0.8.4: + resolution: { integrity: sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== } + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /request/2.88.2: + resolution: { integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== } + engines: { node: '>= 6' } + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + dev: true + + /require-directory/2.1.1: + resolution: { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } + engines: { node: '>=0.10.0' } + dev: true + + /require-from-string/2.0.2: + resolution: { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== } + engines: { node: '>=0.10.0' } + dev: true + + /require-main-filename/2.0.0: + resolution: { integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== } + dev: true + + /requires-port/1.0.0: + resolution: { integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== } + dev: true + + /resolve-from/4.0.0: + resolution: { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } + engines: { node: '>=4' } + dev: true + + /resolve-from/5.0.0: + resolution: { integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== } + engines: { node: '>=8' } + dev: true + + /resolve-url-loader/5.0.0: + resolution: { integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg== } + engines: { node: '>=12' } + dependencies: + adjust-sourcemap-loader: 4.0.0 + convert-source-map: 1.8.0 + loader-utils: 2.0.2 + postcss: 8.4.13 + source-map: 0.6.1 + dev: true + + /resolve/1.22.0: + resolution: { integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== } + hasBin: true + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve/1.22.1: + resolution: { integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== } + hasBin: true + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor/3.1.0: + resolution: { integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== } + engines: { node: '>=8' } + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /retry/0.12.0: + resolution: { integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== } + engines: { node: '>= 4' } + dev: true + + /retry/0.13.1: + resolution: { integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== } + engines: { node: '>= 4' } + dev: true + + /reusify/1.0.4: + resolution: { integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + dev: true + + /rfdc/1.3.0: + resolution: { integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== } + dev: true + + /rimraf/2.7.1: + resolution: { integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== } + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf/3.0.2: + resolution: { integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== } + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /run-async/2.4.1: + resolution: { integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== } + engines: { node: '>=0.12.0' } + dev: true + + /run-parallel/1.2.0: + resolution: { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== } + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs/6.6.7: + resolution: { integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== } + engines: { npm: '>=2.0.0' } + dependencies: + tslib: 1.14.1 + dev: true + + /rxjs/7.5.5: + resolution: { integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== } + dependencies: + tslib: 2.4.0 + + /safe-buffer/5.1.2: + resolution: { integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== } + dev: true + + /safe-buffer/5.2.1: + resolution: { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } + dev: true + + /safer-buffer/2.1.2: + resolution: { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } + dev: true + + /sass-loader/12.6.0_sass@1.51.0+webpack@5.72.1: + resolution: { integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA== } + engines: { node: '>= 12.13.0' } + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + sass: ^1.3.0 + sass-embedded: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true + dependencies: + klona: 2.0.5 + neo-async: 2.6.2 + sass: 1.51.0 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /sass/1.51.0: + resolution: { integrity: sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA== } + engines: { node: '>=12.0.0' } + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.1.0 + source-map-js: 1.0.2 + dev: true + + /saucelabs/1.5.0: + resolution: { integrity: sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ== } + dependencies: + https-proxy-agent: 2.2.4 + transitivePeerDependencies: + - supports-color + dev: true + + /sax/1.2.4: + resolution: { integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== } + dev: true + + /schema-utils/2.7.1: + resolution: { integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== } + engines: { node: '>= 8.9.0' } + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + dev: true + + /schema-utils/3.1.1: + resolution: { integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== } + engines: { node: '>= 10.13.0' } + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + dev: true + + /schema-utils/4.0.0: + resolution: { integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== } + engines: { node: '>= 12.13.0' } + dependencies: + '@types/json-schema': 7.0.11 + ajv: 8.11.0 + ajv-formats: 2.1.1 + ajv-keywords: 5.1.0_ajv@8.11.0 + dev: true + + /select-hose/2.0.0: + resolution: { integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== } + dev: true + + /selenium-webdriver/3.6.0: + resolution: { integrity: sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q== } + engines: { node: '>= 6.9.0' } + dependencies: + jszip: 3.6.0 + rimraf: 2.7.1 + tmp: 0.0.30 + xml2js: 0.4.23 + dev: true + + /selfsigned/2.0.1: + resolution: { integrity: sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== } + engines: { node: '>=10' } + dependencies: + node-forge: 1.3.1 + dev: true + + /semver/5.7.1: + resolution: { integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== } + hasBin: true + dev: true + + /semver/6.3.0: + resolution: { integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== } + hasBin: true + dev: true + + /semver/7.0.0: + resolution: { integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== } + hasBin: true + dev: true + + /semver/7.3.7: + resolution: { integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== } + engines: { node: '>=10' } + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /send/0.18.0: + resolution: { integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== } + engines: { node: '>= 0.8.0' } + 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 + transitivePeerDependencies: + - supports-color + dev: true + + /serialize-javascript/6.0.0: + resolution: { integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== } + dependencies: + randombytes: 2.1.0 + dev: true + + /serve-index/1.9.1: + resolution: { integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== } + engines: { node: '>= 0.8.0' } + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /serve-static/1.15.0: + resolution: { integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== } + engines: { node: '>= 0.8.0' } + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: true + + /set-blocking/2.0.0: + resolution: { integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== } + dev: true + + /set-immediate-shim/1.0.1: + resolution: { integrity: sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== } + engines: { node: '>=0.10.0' } + dev: true + + /setprototypeof/1.1.0: + resolution: { integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== } + dev: true + + /setprototypeof/1.1.1: + resolution: { integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== } + dev: true + + /setprototypeof/1.2.0: + resolution: { integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== } + dev: true + + /shallow-clone/3.0.1: + resolution: { integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== } + engines: { node: '>=8' } + dependencies: + kind-of: 6.0.3 + dev: true + + /shebang-command/2.0.0: + resolution: { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== } + engines: { node: '>=8' } + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== } + engines: { node: '>=8' } + dev: true + + /side-channel/1.0.4: + resolution: { integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.2 + object-inspect: 1.12.2 + dev: true + + /signal-exit/3.0.7: + resolution: { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } + dev: true + + /slash/3.0.0: + resolution: { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } + engines: { node: '>=8' } + dev: true + + /slash/4.0.0: + resolution: { integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== } + engines: { node: '>=12' } + dev: true + + /smart-buffer/4.2.0: + resolution: { integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== } + engines: { node: '>= 6.0.0', npm: '>= 3.0.0' } + dev: true + + /socket.io-adapter/2.1.0: + resolution: { integrity: sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg== } + dev: true + + /socket.io-parser/4.0.4: + resolution: { integrity: sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== } + engines: { node: '>=10.0.0' } + dependencies: + '@types/component-emitter': 1.2.10 + component-emitter: 1.3.0 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /socket.io/3.1.2: + resolution: { integrity: sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw== } + engines: { node: '>=10.0.0' } + dependencies: + '@types/cookie': 0.4.0 + '@types/cors': 2.8.10 + '@types/node': 16.11.43 + accepts: 1.3.7 + base64id: 2.0.0 + debug: 4.3.4 + engine.io: 4.1.1 + socket.io-adapter: 2.1.0 + socket.io-parser: 4.0.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /sockjs/0.3.24: + resolution: { integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== } + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: true + + /socks-proxy-agent/6.2.1: + resolution: { integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== } + engines: { node: '>= 10' } + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /socks-proxy-agent/7.0.0: + resolution: { integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== } + engines: { node: '>= 10' } + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.6.2 + transitivePeerDependencies: + - supports-color + dev: true + + /socks/2.6.2: + resolution: { integrity: sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== } + engines: { node: '>= 10.13.0', npm: '>= 3.0.0' } + dependencies: + ip: 1.1.8 + smart-buffer: 4.2.0 + dev: true + + /sort-keys/4.2.0: + resolution: { integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== } + engines: { node: '>=8' } + dependencies: + is-plain-obj: 2.1.0 + dev: true + + /source-map-js/1.0.2: + resolution: { integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== } + engines: { node: '>=0.10.0' } + dev: true + + /source-map-loader/3.0.1_webpack@5.72.1: + resolution: { integrity: sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA== } + engines: { node: '>= 12.13.0' } + peerDependencies: + webpack: ^5.0.0 + dependencies: + abab: 2.0.6 + iconv-lite: 0.6.3 + source-map-js: 1.0.2 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /source-map-resolve/0.6.0: + resolution: { integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== } + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.0 + dev: true + + /source-map-support/0.4.18: + resolution: { integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== } + dependencies: + source-map: 0.5.7 + dev: true + + /source-map-support/0.5.21: + resolution: { integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== } + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map/0.5.7: + resolution: { integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== } + engines: { node: '>=0.10.0' } + dev: true + + /source-map/0.6.1: + resolution: { integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== } + engines: { node: '>=0.10.0' } + dev: true + + /source-map/0.7.3: + resolution: { integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== } + engines: { node: '>= 8' } + dev: true + + /source-map/0.7.4: + resolution: { integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== } + engines: { node: '>= 8' } + dev: true + + /source-map/0.8.0-beta.0: + resolution: { integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== } + engines: { node: '>= 8' } + dependencies: + whatwg-url: 7.1.0 + dev: true + + /sourcemap-codec/1.4.8: + resolution: { integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== } + dev: true + + /spdx-correct/3.1.1: + resolution: { integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== } + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-exceptions/2.3.0: + resolution: { integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== } + dev: true + + /spdx-expression-parse/3.0.1: + resolution: { integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== } + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-license-ids/3.0.11: + resolution: { integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== } + dev: true + + /spdy-transport/3.0.0: + resolution: { integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== } + dependencies: + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.0 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: true + + /spdy/4.0.2: + resolution: { integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== } + engines: { node: '>=6.0.0' } + dependencies: + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /split-on-first/1.1.0: + resolution: { integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== } + engines: { node: '>=6' } + dev: true + + /sprintf-js/1.0.3: + resolution: { integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== } + dev: true + + /sshpk/1.16.1: + resolution: { integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== } + engines: { node: '>=0.10.0' } + hasBin: true + dependencies: + asn1: 0.2.4 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + + /ssri/8.0.1: + resolution: { integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== } + engines: { node: '>= 8' } + dependencies: + minipass: 3.3.4 + dev: true + + /ssri/9.0.1: + resolution: { integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + minipass: 3.3.4 + dev: true + + /statuses/1.5.0: + resolution: { integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== } + engines: { node: '>= 0.6' } + dev: true + + /statuses/2.0.1: + resolution: { integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== } + engines: { node: '>= 0.8' } + dev: true + + /streamroller/2.2.4: + resolution: { integrity: sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ== } + engines: { node: '>=8.0' } + dependencies: + date-format: 2.1.0 + debug: 4.3.4 + fs-extra: 8.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /strict-uri-encode/2.0.0: + resolution: { integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== } + engines: { node: '>=4' } + dev: true + + /string-width/4.2.3: + resolution: { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== } + engines: { node: '>=8' } + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string_decoder/1.1.1: + resolution: { integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== } + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder/1.3.0: + resolution: { integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi/3.0.1: + resolution: { integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== } + engines: { node: '>=0.10.0' } + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi/6.0.1: + resolution: { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== } + engines: { node: '>=8' } + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-final-newline/2.0.0: + resolution: { integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== } + engines: { node: '>=6' } + dev: true + + /strip-json-comments/3.1.1: + resolution: { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== } + engines: { node: '>=8' } + dev: true + + /stylus-loader/6.2.0_ay64gns3hzwkz7vfnhtaeofsfy: + resolution: { integrity: sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg== } + engines: { node: '>= 12.13.0' } + peerDependencies: + stylus: '>=0.52.4' + webpack: ^5.0.0 + dependencies: + fast-glob: 3.2.11 + klona: 2.0.5 + normalize-path: 3.0.0 + stylus: 0.57.0 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /stylus/0.57.0: + resolution: { integrity: sha512-yOI6G8WYfr0q8v8rRvE91wbxFU+rJPo760Va4MF6K0I6BZjO4r+xSynkvyPBP9tV1CIEUeRsiidjIs2rzb1CnQ== } + hasBin: true + dependencies: + css: 3.0.0 + debug: 4.3.4 + glob: 7.2.3 + safer-buffer: 2.1.2 + sax: 1.2.4 + source-map: 0.7.4 + transitivePeerDependencies: + - supports-color + dev: true + + /supports-color/2.0.0: + resolution: { integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== } + engines: { node: '>=0.8.0' } + dev: true + + /supports-color/5.5.0: + resolution: { integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== } + engines: { node: '>=4' } + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } + engines: { node: '>=8' } + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color/8.1.1: + resolution: { integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== } + engines: { node: '>=10' } + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== } + engines: { node: '>= 0.4' } + dev: true + + /symbol-observable/4.0.0: + resolution: { integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== } + engines: { node: '>=0.10' } + dev: true + + /tapable/2.2.1: + resolution: { integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== } + engines: { node: '>=6' } + dev: true + + /tar/6.1.11: + resolution: { integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== } + engines: { node: '>= 10' } + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 3.3.4 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /terser-webpack-plugin/5.3.3_fiumfraq6k46f244cfxacunjs4: + resolution: { integrity: sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ== } + engines: { node: '>= 10.13.0' } + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.14 + esbuild: 0.14.38 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.0 + terser: 5.13.1 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /terser/5.13.1: + resolution: { integrity: sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA== } + engines: { node: '>=10' } + hasBin: true + dependencies: + acorn: 8.7.1 + commander: 2.20.3 + source-map: 0.8.0-beta.0 + source-map-support: 0.5.21 + dev: true + + /test-exclude/6.0.0: + resolution: { integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== } + engines: { node: '>=8' } + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-table/0.2.0: + resolution: { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== } + dev: true + + /through/2.3.8: + resolution: { integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== } + dev: true + + /thunky/1.1.0: + resolution: { integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== } + dev: true + + /tmp/0.0.30: + resolution: { integrity: sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w== } + engines: { node: '>=0.4.0' } + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /tmp/0.0.33: + resolution: { integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== } + engines: { node: '>=0.6.0' } + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /tmp/0.2.1: + resolution: { integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== } + engines: { node: '>=8.17.0' } + dependencies: + rimraf: 3.0.2 + dev: true + + /to-fast-properties/2.0.0: + resolution: { integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== } + engines: { node: '>=4' } + dev: true + + /to-regex-range/5.0.1: + resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== } + engines: { node: '>=8.0' } + dependencies: + is-number: 7.0.0 + dev: true + + /toidentifier/1.0.0: + resolution: { integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== } + engines: { node: '>=0.6' } + dev: true + + /toidentifier/1.0.1: + resolution: { integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== } + engines: { node: '>=0.6' } + dev: true + + /tough-cookie/2.5.0: + resolution: { integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== } + engines: { node: '>=0.8' } + dependencies: + psl: 1.8.0 + punycode: 2.1.1 + dev: true + + /tr46/1.0.1: + resolution: { integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== } + dependencies: + punycode: 2.1.1 + dev: true + + /tree-kill/1.2.2: + resolution: { integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== } + hasBin: true + dev: true + + /ts-node/10.8.2_5qlmdbhxrylc4rhzh7wamif4di: + resolution: { integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA== } + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 16.11.43 + acorn: 8.7.1 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.7.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tslib/1.14.1: + resolution: { integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== } + dev: true + + /tslib/2.4.0: + resolution: { integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== } + + /tsutils/3.21.0_typescript@4.7.4: + resolution: { integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== } + engines: { node: '>= 6' } + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.7.4 + dev: true + + /tunnel-agent/0.6.0: + resolution: { integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tweetnacl/0.14.5: + resolution: { integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== } + dev: true + + /type-check/0.4.0: + resolution: { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest/0.20.2: + resolution: { integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== } + engines: { node: '>=10' } + dev: true + + /type-fest/0.21.3: + resolution: { integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== } + engines: { node: '>=10' } + dev: true + + /type-is/1.6.18: + resolution: { integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== } + engines: { node: '>= 0.6' } + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: true + + /typed-assert/1.0.9: + resolution: { integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg== } + dev: true + + /typescript/4.7.4: + resolution: { integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== } + engines: { node: '>=4.2.0' } + hasBin: true + dev: true + + /ua-parser-js/0.7.25: + resolution: { integrity: sha512-8NFExdfI24Ny8R3Vc6+uUytP/I7dpqk3JERlvxPWlrtx5YboqCgxAXYKPAifbPLV2zKbgmmPL53ufW7mUC/VOQ== } + dev: true + + /unicode-canonical-property-names-ecmascript/2.0.0: + resolution: { integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== } + engines: { node: '>=4' } + dev: true + + /unicode-match-property-ecmascript/2.0.0: + resolution: { integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== } + engines: { node: '>=4' } + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.0.0 + dev: true + + /unicode-match-property-value-ecmascript/2.0.0: + resolution: { integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== } + engines: { node: '>=4' } + dev: true + + /unicode-property-aliases-ecmascript/2.0.0: + resolution: { integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== } + engines: { node: '>=4' } + dev: true + + /unique-filename/1.1.1: + resolution: { integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== } + dependencies: + unique-slug: 2.0.2 + dev: true + + /unique-slug/2.0.2: + resolution: { integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== } + dependencies: + imurmurhash: 0.1.4 + dev: true + + /universalify/0.1.2: + resolution: { integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== } + engines: { node: '>= 4.0.0' } + dev: true + + /unpipe/1.0.0: + resolution: { integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== } + engines: { node: '>= 0.8' } + dev: true + + /update-browserslist-db/1.0.4_browserslist@4.21.1: + resolution: { integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== } + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js/4.4.1: + resolution: { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== } + dependencies: + punycode: 2.1.1 + dev: true + + /util-deprecate/1.0.2: + resolution: { integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== } + dev: true + + /utils-merge/1.0.1: + resolution: { integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= } + engines: { node: '>= 0.4.0' } + dev: true + + /uuid/8.3.2: + resolution: { integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== } + hasBin: true + dev: true + + /v8-compile-cache-lib/3.0.1: + resolution: { integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== } + dev: true + + /v8-compile-cache/2.3.0: + resolution: { integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== } + dev: true + + /validate-npm-package-license/3.0.4: + resolution: { integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== } + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /validate-npm-package-name/4.0.0: + resolution: { integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + dependencies: + builtins: 5.0.1 + dev: true + + /vary/1.1.2: + resolution: { integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== } + engines: { node: '>= 0.8' } + dev: true + + /verror/1.10.0: + resolution: { integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== } + engines: { '0': node >=0.6.0 } + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /void-elements/2.0.1: + resolution: { integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== } + engines: { node: '>=0.10.0' } + dev: true + + /watchpack/2.4.0: + resolution: { integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== } + engines: { node: '>=10.13.0' } + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + dev: true + + /wbuf/1.7.3: + resolution: { integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== } + dependencies: + minimalistic-assert: 1.0.1 + dev: true + + /wcwidth/1.0.1: + resolution: { integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== } + dependencies: + defaults: 1.0.3 + dev: true + + /webdriver-js-extender/2.1.0: + resolution: { integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ== } + engines: { node: '>=6.9.x' } + dependencies: + '@types/selenium-webdriver': 3.0.17 + selenium-webdriver: 3.6.0 + dev: true + + /webdriver-manager/12.1.8: + resolution: { integrity: sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg== } + engines: { node: '>=6.9.x' } + hasBin: true + dependencies: + adm-zip: 0.4.16 + chalk: 1.1.3 + del: 2.2.2 + glob: 7.2.3 + ini: 1.3.8 + minimist: 1.2.5 + q: 1.4.1 + request: 2.88.2 + rimraf: 2.7.1 + semver: 5.7.1 + xml2js: 0.4.23 + dev: true + + /webidl-conversions/4.0.2: + resolution: { integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== } + dev: true + + /webpack-dev-middleware/5.3.1_webpack@5.72.1: + resolution: { integrity: sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg== } + engines: { node: '>= 12.13.0' } + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.19 + memfs: 3.4.7 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.0 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /webpack-dev-server/4.9.0_webpack@5.72.1: + resolution: { integrity: sha512-+Nlb39iQSOSsFv0lWUuUTim3jDQO8nhK3E68f//J2r5rIcp4lULHXz2oZ0UVdEeWXEh5lSzYUlzarZhDAeAVQw== } + engines: { node: '>= 12.13.0' } + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.10 + '@types/connect-history-api-fallback': 1.3.5 + '@types/express': 4.17.13 + '@types/serve-index': 1.9.1 + '@types/sockjs': 0.3.33 + '@types/ws': 8.5.3 + ansi-html-community: 0.0.8 + bonjour-service: 1.0.13 + chokidar: 3.5.3 + colorette: 2.0.19 + compression: 1.7.4 + connect-history-api-fallback: 1.6.0 + default-gateway: 6.0.3 + express: 4.18.1 + graceful-fs: 4.2.10 + html-entities: 2.3.3 + http-proxy-middleware: 2.0.6_@types+express@4.17.13 + ipaddr.js: 2.0.1 + open: 8.4.0 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.0.0 + selfsigned: 2.0.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.72.1_esbuild@0.14.38 + webpack-dev-middleware: 5.3.1_webpack@5.72.1 + ws: 8.8.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /webpack-merge/5.8.0: + resolution: { integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== } + engines: { node: '>=10.0.0' } + dependencies: + clone-deep: 4.0.1 + wildcard: 2.0.0 + dev: true + + /webpack-sources/3.2.3: + resolution: { integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== } + engines: { node: '>=10.13.0' } + dev: true + + /webpack-subresource-integrity/5.1.0_webpack@5.72.1: + resolution: { integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q== } + engines: { node: '>= 12' } + peerDependencies: + html-webpack-plugin: '>= 5.0.0-beta.1 < 6' + webpack: ^5.12.0 + peerDependenciesMeta: + html-webpack-plugin: + optional: true + dependencies: + typed-assert: 1.0.9 + webpack: 5.72.1_esbuild@0.14.38 + dev: true + + /webpack/5.72.1_esbuild@0.14.38: + resolution: { integrity: sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung== } + engines: { node: '>=10.13.0' } + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@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.8.0_acorn@8.7.1 + browserslist: 4.21.1 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.10.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.1 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.3_fiumfraq6k46f244cfxacunjs4 + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /websocket-driver/0.7.4: + resolution: { integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== } + engines: { node: '>=0.8.0' } + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions/0.1.4: + resolution: { integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== } + engines: { node: '>=0.8.0' } + dev: true + + /whatwg-url/7.1.0: + resolution: { integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== } + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-module/2.0.0: + resolution: { integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== } + dev: true + + /which/1.3.1: + resolution: { integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which/2.0.2: + resolution: { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== } + engines: { node: '>= 8' } + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wide-align/1.1.5: + resolution: { integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== } + dependencies: + string-width: 4.2.3 + dev: true + + /wildcard/2.0.0: + resolution: { integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== } + dev: true + + /word-wrap/1.2.3: + resolution: { integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== } + engines: { node: '>=0.10.0' } + dev: true + + /wrap-ansi/6.2.0: + resolution: { integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== } + engines: { node: '>=8' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi/7.0.0: + resolution: { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy/1.0.2: + resolution: { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } + dev: true + + /ws/7.4.6: + resolution: { integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== } + engines: { node: '>=8.3.0' } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws/8.8.0: + resolution: { integrity: sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== } + 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 + dev: true + + /xml2js/0.4.23: + resolution: { integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== } + engines: { node: '>=4.0.0' } + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: true + + /xmlbuilder/11.0.1: + resolution: { integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== } + engines: { node: '>=4.0' } + dev: true + + /y18n/4.0.3: + resolution: { integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== } + dev: true + + /y18n/5.0.8: + resolution: { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== } + engines: { node: '>=10' } + dev: true + + /yallist/4.0.0: + resolution: { integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== } + dev: true + + /yaml/1.10.2: + resolution: { integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== } + engines: { node: '>= 6' } + dev: true + + /yargs-parser/18.1.3: + resolution: { integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== } + engines: { node: '>=6' } + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs-parser/20.2.9: + resolution: { integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== } + engines: { node: '>=10' } + dev: true + + /yargs-parser/21.0.1: + resolution: { integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== } + engines: { node: '>=12' } + dev: true + + /yargs/15.4.1: + resolution: { integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== } + engines: { node: '>=8' } + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + + /yargs/16.2.0: + resolution: { integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== } + engines: { node: '>=10' } + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + + /yargs/17.4.1: + resolution: { integrity: sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== } + engines: { node: '>=12' } + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.0.1 + dev: true + + /yargs/17.5.1: + resolution: { integrity: sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== } + engines: { node: '>=12' } + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.0.1 + dev: true + + /yn/3.1.1: + resolution: { integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== } + engines: { node: '>=6' } + dev: true + + /zone.js/0.11.6: + resolution: { integrity: sha512-umJqFtKyZlPli669gB1gOrRE9hxUUGkZr7mo878z+NEBJZZixJkKeVYfnoLa7g25SseUDc92OZrMKKHySyJrFg== } + dependencies: + tslib: 2.4.0 diff --git a/Code/skyrim_ui/src/app/app.module.ts b/Code/skyrim_ui/src/app/app.module.ts index 0cb492c82..d0c2cb761 100644 --- a/Code/skyrim_ui/src/app/app.module.ts +++ b/Code/skyrim_ui/src/app/app.module.ts @@ -1,60 +1,92 @@ +import { HttpClientModule } from '@angular/common/http'; import { NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatTabsModule } from '@angular/material/tabs'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { HttpClientModule } from '@angular/common/http'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; -import {MatTabsModule} from '@angular/material/tabs'; - -import { PopupButtonsDirective } from './directives/popup-buttons.directive'; -import { HealthDirective } from './directives/health.directive'; - -import { RootComponent } from './components/root/root.component'; -import { ConnectComponent } from './components/connect/connect.component'; -import { DisconnectComponent } from './components/disconnect/disconnect.component'; -import { NotificationsComponent } from './components/notifications/notifications.component'; import { ChatComponent } from './components/chat/chat.component'; -import { PopupComponent } from './components/popup/popup.component'; -import { WindowComponent } from './components/window/window.component'; - -import { ClientService } from './services/client.service'; -import { AssetService } from './services/asset.service'; -import { SoundService } from './services/sound.service'; +import { ConnectComponent } from './components/connect/connect.component'; import { DebugComponent } from './components/debug/debug.component'; -import { ErrorService } from './services/error.service'; +import { DisconnectComponent } from './components/disconnect/disconnect.component'; import { ErrorComponent } from './components/error/error.component'; -import { GroupService } from './services/group.service'; -import { StoreService } from './services/store.service'; -import { SettingService } from './services/setting.service'; -import { PlayerListService } from './services/player-list.service'; -import { MockClientService } from './services/mock-client.service'; import { GroupComponent } from './components/group/group.component'; -import { NotificationPopupComponent } from './components/notification-popup/notification-popup.component'; -import { ToggleComponent } from './components/toggle/toggle.component'; import { LoadingComponent } from './components/loading/loading.component'; -import { ServerListComponent } from './components/server-list/server-list.component'; +import { NotificationPopupComponent } from './components/notification-popup/notification-popup.component'; +import { NotificationsComponent } from './components/notifications/notifications.component'; import { OrderComponent } from './components/order/order.component'; -import { SettingsComponent } from './components/settings/settings.component'; +import { PartyMenuComponent } from './components/party-menu/party-menu.component'; import { PlayerListComponent } from './components/player-list/player-list.component'; import { PlayerManagerComponent } from './components/player-manager/player-manager.component'; -import { PartyMenuComponent } from './components/party-menu/party-menu.component'; +import { PopupComponent } from './components/popup/popup.component'; +import { RootComponent } from './components/root/root.component'; +import { ServerListComponent } from './components/server-list/server-list.component'; +import { SettingsComponent } from './components/settings/settings.component'; +import { ToggleComponent } from './components/toggle/toggle.component'; +import { WindowComponent } from './components/window/window.component'; +import { HealthDirective } from './directives/health.directive'; + +import { PopupButtonsDirective } from './directives/popup-buttons.directive'; +import { AssetService } from './services/asset.service'; + +import { ClientService } from './services/client.service'; +import { ErrorService } from './services/error.service'; +import { GroupService } from './services/group.service'; +import { MockClientService } from './services/mock-client.service'; +import { PlayerListService } from './services/player-list.service'; +import { SettingService } from './services/setting.service'; +import { SoundService } from './services/sound.service'; +import { StoreService } from './services/store.service'; @NgModule({ declarations: [ - PopupButtonsDirective, RootComponent, - ConnectComponent, DisconnectComponent, NotificationsComponent, ChatComponent, PopupComponent, - WindowComponent, DebugComponent, ErrorComponent, GroupComponent, NotificationPopupComponent, HealthDirective, - ToggleComponent, + ChatComponent, + ConnectComponent, + DebugComponent, + DisconnectComponent, + ErrorComponent, + GroupComponent, LoadingComponent, - ServerListComponent, SettingsComponent, PlayerListComponent, PlayerManagerComponent, PartyMenuComponent, - OrderComponent + NotificationPopupComponent, + NotificationsComponent, + OrderComponent, + PartyMenuComponent, + PlayerListComponent, + PlayerManagerComponent, + PopupComponent, + RootComponent, + ServerListComponent, + SettingsComponent, + ToggleComponent, + WindowComponent, + + HealthDirective, + PopupButtonsDirective, + ], + imports: [ + BrowserModule, + BrowserAnimationsModule, + FormsModule, + HttpClientModule, + ReactiveFormsModule, + FontAwesomeModule, + MatTabsModule, + ], + providers: [ + ClientService, + MockClientService, + AssetService, + SoundService, + ErrorService, + GroupService, + PlayerListService, + StoreService, + SettingService, ], - imports: [ BrowserModule, BrowserAnimationsModule, FormsModule, HttpClientModule, ReactiveFormsModule, FontAwesomeModule, MatTabsModule ], - providers: [ ClientService, MockClientService, AssetService, SoundService, - ErrorService, GroupService, PlayerListService, StoreService, SettingService ], - bootstrap: [ RootComponent ] + bootstrap: [RootComponent], }) -export class AppModule {} +export class AppModule { +} diff --git a/Code/skyrim_ui/src/app/components/chat/chat.component.scss b/Code/skyrim_ui/src/app/components/chat/chat.component.scss index dd97e6465..9899a3240 100644 --- a/Code/skyrim_ui/src/app/components/chat/chat.component.scss +++ b/Code/skyrim_ui/src/app/components/chat/chat.component.scss @@ -20,7 +20,7 @@ app-chat { p { margin: 0; line-height: $-size-line; - padding: ($-size-gap / 5) ($-size-gap / 2); + padding: ($-size-gap * 0.2) ($-size-gap * 0.5); text-align: left; &[data-odd=true] { @@ -30,7 +30,7 @@ app-chat { &[data-system=true] { .app-chat-date, .app-chat-message { - color: #99F; + color: #9999ff; } } &[data-dialogue=true] { diff --git a/Code/skyrim_ui/src/app/components/connect/connect.component.ts b/Code/skyrim_ui/src/app/components/connect/connect.component.ts index 6d806186a..4ff390073 100644 --- a/Code/skyrim_ui/src/app/components/connect/connect.component.ts +++ b/Code/skyrim_ui/src/app/components/connect/connect.component.ts @@ -1,23 +1,20 @@ -import { - Component, ViewEncapsulation, Output, EventEmitter, - OnDestroy, HostListener, ViewChild, ElementRef, AfterViewInit -} from '@angular/core'; - +import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, OnDestroy, Output, ViewChild, ViewEncapsulation } from '@angular/core'; import { Subscription } from 'rxjs'; - import { ClientService } from '../../services/client.service'; -import { SoundService, Sound } from '../../services/sound.service'; import { ErrorService } from '../../services/error.service'; +import { Sound, SoundService } from '../../services/sound.service'; + @Component({ selector: 'app-connect', templateUrl: './connect.component.html', - styleUrls: [ './connect.component.scss' ], - encapsulation: ViewEncapsulation.None + styleUrls: ['./connect.component.scss'], + encapsulation: ViewEncapsulation.None, }) export class ConnectComponent implements OnDestroy, AfterViewInit { + @Output() - public done = new EventEmitter(); + public done = new EventEmitter(); @Output() public setView = new EventEmitter(); @@ -29,7 +26,7 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { public constructor( private client: ClientService, private sound: SoundService, - private errorService: ErrorService + private errorService: ErrorService, ) { this.connectionSubscription = this.client.connectionStateChange.subscribe(state => { if (this.connecting) { @@ -38,13 +35,12 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { if (state) { this.sound.play(Sound.Success); this.done.next(); - } - else { + } else { this.sound.play(Sound.Fail); this.errorService.error( 'Could not connect to the specified server. Please make sure you\'ve entered the ' + - 'correct address and that you\'re not experiencing network issues.' + 'correct address and that you\'re not experiencing network issues.', ); } } @@ -53,9 +49,9 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { this.protocolMismatchSubscription = this.client.protocolMismatchChange.subscribe(state => { if (state) { this.connecting = false; - this.errorService.error("You cannot connect to the server because it does not have the same version of Skyrim Together as you."); + this.errorService.error('You cannot connect to the server because it does not have the same version of Skyrim Together as you.'); } - }) + }); } public ngAfterViewInit(): void { @@ -90,7 +86,7 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { } public openServerList(): void { - this.setView.next("serverList"); + this.setView.next('serverList'); } @ViewChild('input') @@ -100,13 +96,12 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { private protocolMismatchSubscription: Subscription; - @HostListener('window:keydown.escape', [ '$event' ]) + @HostListener('window:keydown.escape', ['$event']) // @ts-ignore private activate(event: KeyboardEvent): void { if (this.errorService.error$.value) { this.errorService.removeError(); - } - else { + } else { this.done.next(); } diff --git a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts index f1c98b8a8..a16e442ab 100644 --- a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts +++ b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts @@ -1,21 +1,21 @@ -import { - Component, ViewEncapsulation, Output, EventEmitter, HostListener -} from '@angular/core'; - -import { SoundService, Sound } from '../../services/sound.service'; +import { Component, EventEmitter, HostListener, Output, ViewEncapsulation } from '@angular/core'; import { ClientService } from '../../services/client.service'; +import { Sound, SoundService } from '../../services/sound.service'; + @Component({ selector: 'app-disconnect', templateUrl: './disconnect.component.html', - styleUrls: [ './disconnect.component.scss' ], - encapsulation: ViewEncapsulation.None + styleUrls: ['./disconnect.component.scss'], + encapsulation: ViewEncapsulation.None, }) export class DisconnectComponent { + @Output() - public done = new EventEmitter(); + public done = new EventEmitter(); - public constructor(private client: ClientService, private sound: SoundService) {} + public constructor(private client: ClientService, private sound: SoundService) { + } public disconnect(): void { this.client.disconnect(); @@ -28,7 +28,7 @@ export class DisconnectComponent { this.done.next(); } - @HostListener('window:keydown.escape', [ '$event' ]) + @HostListener('window:keydown.escape', ['$event']) // @ts-ignore private activate(event: KeyboardEvent): void { this.done.next(); diff --git a/Code/skyrim_ui/src/app/components/notifications/notifications.component.scss b/Code/skyrim_ui/src/app/components/notifications/notifications.component.scss index 9718646d4..2b6b255a1 100644 --- a/Code/skyrim_ui/src/app/components/notifications/notifications.component.scss +++ b/Code/skyrim_ui/src/app/components/notifications/notifications.component.scss @@ -15,7 +15,7 @@ app-notifications { .app-notifications-icon { flex: 0 0 1rem; - margin-right: $-size-gap / 2; + margin-right: $-size-gap * 0.5; background: url(../../../assets/images/arrow/east.svg) center / contain no-repeat; } diff --git a/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts b/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts index 3a9a150e9..cccb17144 100644 --- a/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts +++ b/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts @@ -1,11 +1,8 @@ -import { - Component, ViewEncapsulation, OnDestroy -} from '@angular/core'; - +import { Component, OnDestroy, ViewEncapsulation } from '@angular/core'; import { Subscription } from 'rxjs'; - import { ClientService } from '../../services/client.service'; + interface Notification { content: string; timer: number; @@ -14,8 +11,8 @@ interface Notification { @Component({ selector: 'app-notifications', templateUrl: './notifications.component.html', - styleUrls: [ './notifications.component.scss' ], - encapsulation: ViewEncapsulation.None + styleUrls: ['./notifications.component.scss'], + encapsulation: ViewEncapsulation.None, }) export class NotificationsComponent implements OnDestroy { public notifications = [] as Notification[]; @@ -23,10 +20,10 @@ export class NotificationsComponent implements OnDestroy { public constructor(private client: ClientService) { this.messageSubscription = this.client.messageReception.subscribe(message => { this.notifications.push({ - content: `${message.name ? `Message from ${message.name}: ` : ''}${message.content}`, + content: `${ message.name ? `Message from ${ message.name }: ` : '' }${ message.content }`, timer: setTimeout(() => { this.notifications.shift(); - }, 5000) + }, 5000), }); if (this.notifications.length > 5) { @@ -34,7 +31,7 @@ export class NotificationsComponent implements OnDestroy { clearTimeout(notification.timer); } } - }) + }); } public ngOnDestroy(): void { diff --git a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts index 10d7c2eef..0f290313b 100644 --- a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts +++ b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts @@ -1,17 +1,19 @@ -import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output, ViewEncapsulation } from "@angular/core"; +import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core'; + @Component({ selector: 'app-player-manager', templateUrl: './player-manager.component.html', styleUrls: ['./player-manager.component.scss'], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, }) export class PlayerManagerComponent implements OnInit, OnDestroy { @Output() - public done = new EventEmitter(); + public done = new EventEmitter(); - constructor() { } + constructor() { + } ngOnInit(): void { } @@ -24,7 +26,7 @@ export class PlayerManagerComponent implements OnInit, OnDestroy { } private close() { - this.done.next(); + this.done.next(); } @HostListener('window:keydown.escape', ['$event']) @@ -34,4 +36,4 @@ export class PlayerManagerComponent implements OnInit, OnDestroy { event.stopPropagation(); event.preventDefault(); } -} \ No newline at end of file +} diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts index e2d690410..5146e21ed 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts @@ -1,15 +1,16 @@ -import { Component, OnInit, ViewEncapsulation, Output, EventEmitter, HostListener, OnDestroy } from '@angular/core'; -import { ErrorService } from '../../services/error.service'; -import { ServerListService } from '../../services/server-list.service'; -import { ClientService } from '../../services/client.service'; -import { SoundService, Sound } from '../../services/sound.service'; +import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core'; import { FormControl } from '@angular/forms'; +import { faStar as farStar } from '@fortawesome/free-regular-svg-icons'; +import { faStar as fasStar } from '@fortawesome/free-solid-svg-icons'; import { forkJoin, interval, Observable, Subscription } from 'rxjs'; import { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators'; -import { StoreService } from '../../services/store.service'; -import { faStar as farStar } from "@fortawesome/free-regular-svg-icons"; -import { faStar as fasStar } from "@fortawesome/free-solid-svg-icons"; import { Server } from '../../models/server'; +import { ClientService } from '../../services/client.service'; +import { ErrorService } from '../../services/error.service'; +import { ServerListService } from '../../services/server-list.service'; +import { Sound, SoundService } from '../../services/sound.service'; +import { StoreService } from '../../services/store.service'; + @Component({ selector: 'app-server-list', @@ -20,7 +21,7 @@ import { Server } from '../../models/server'; export class ServerListComponent implements OnInit, OnDestroy { @Output() - public done = new EventEmitter(); + public done = new EventEmitter(); @Output() public setView = new EventEmitter(); @@ -41,14 +42,18 @@ export class ServerListComponent implements OnInit, OnDestroy { private searchSubscription: Subscription; private autoRefreshSubscription: Subscription; - constructor(private errorService: ErrorService, private serverListService: ServerListService, + constructor( + private errorService: ErrorService, + private serverListService: ServerListService, private clientService: ClientService, private soundService: SoundService, - private storeService: StoreService) { } + private storeService: StoreService, + ) { + } ngOnInit() { this.updateServerList(); - this.onSearchSubscription() + this.onSearchSubscription(); this.onAutoRefreshSubcription(); } @@ -59,7 +64,7 @@ export class ServerListComponent implements OnInit, OnDestroy { } public cancel(): void { - this.setView.next("connect"); + this.setView.next('connect'); } public updateServerList() { @@ -74,7 +79,7 @@ export class ServerListComponent implements OnInit, OnDestroy { return; } }); - + this.serverListService.getServerList() .pipe( /** @@ -102,7 +107,7 @@ export class ServerListComponent implements OnInit, OnDestroy { private getLocationDataByIp(servers: Server[]): Array> { return servers.map((server) => { return this.serverListService.getInformationForIp(server.ip).pipe( - map((data) => ({ ...server, countryCode: data.countryCode.toLowerCase(), continent: data.continent, country: data.country })) + map((data) => ({ ...server, countryCode: data.countryCode.toLowerCase(), continent: data.continent, country: data.country })), ); }); } @@ -112,15 +117,14 @@ export class ServerListComponent implements OnInit, OnDestroy { } private markFavoritedServers(servers: Server[]): Server[] { - const favoriteServerList = JSON.parse(this.storeService.get('favoriteServerList', "[]")); + const favoriteServerList = JSON.parse(this.storeService.get('favoriteServerList', '[]')); if (favoriteServerList.length > 0) { servers.map((server: Server) => { favoriteServerList.forEach(favServer => { if (server.ip === favServer.ip && server.port === favServer.port) { server.isFavorite = true; - } - else if (server.name === favServer.name) { + } else if (server.name === favServer.name) { server.isFavorite = true; } }); @@ -141,7 +145,7 @@ export class ServerListComponent implements OnInit, OnDestroy { this.autoRefreshSubscription = interval(60000 * minutes) .subscribe((value) => { this.updateServerList(); - }) + }); } @@ -163,17 +167,16 @@ export class ServerListComponent implements OnInit, OnDestroy { } - public onSearchSubscription() { this.searchSubscription = this.formSearch.valueChanges .pipe( debounceTime(400), - distinctUntilChanged() + distinctUntilChanged(), ) .subscribe((value) => { this.filterNameServer(value); this.filterCountryServer(value); - }) + }); } public sortPlayers(isIncreasingOrder: boolean) { @@ -217,7 +220,7 @@ export class ServerListComponent implements OnInit, OnDestroy { } private filterNameServer(search: string): void { - if (search || search === "") { + if (search || search === '') { search = search.toLowerCase(); this.serverList = this._serverList.filter((server: Server) => { @@ -245,7 +248,7 @@ export class ServerListComponent implements OnInit, OnDestroy { public getFavoriteServers(): Server[] { return this._serverList.filter(value => { return value.isFavorite; - }) + }); } public getFavoriteIcon(server: Server) { @@ -253,11 +256,11 @@ export class ServerListComponent implements OnInit, OnDestroy { } public getClientVersion() { - return this.clientService.versionSet.value.split("-")[0]; + return this.clientService.versionSet.value.split('-')[0]; } public getServerVersion(server: Server) { - return server.version.split("-")[0]; + return server.version.split('-')[0]; } public isCompatibleToClient(server: Server) { @@ -267,8 +270,7 @@ export class ServerListComponent implements OnInit, OnDestroy { private close() { if (this.errorService.error$.value) { this.errorService.removeError(); - } - else { + } else { this.done.next(); } } @@ -284,8 +286,7 @@ export class ServerListComponent implements OnInit, OnDestroy { static sortDescendingCountryCount(a: Server, b: Server) { if (a.country > b.country) { return -1; - } - else if (a.country < b.country) { + } else if (a.country < b.country) { return 1; } return 0; @@ -294,8 +295,7 @@ export class ServerListComponent implements OnInit, OnDestroy { static sortIncreasingCountryCount(a: Server, b: Server) { if (a.country > b.country) { return 1; - } - else if (a.country < b.country) { + } else if (a.country < b.country) { return -1; } return 0; @@ -304,8 +304,7 @@ export class ServerListComponent implements OnInit, OnDestroy { static sortDescendingNameCount(a: Server, b: Server) { if (a.name > b.name) { return -1; - } - else if (a.name < b.name) { + } else if (a.name < b.name) { return 1; } return 0; @@ -314,8 +313,7 @@ export class ServerListComponent implements OnInit, OnDestroy { static sortIncreasingNameCount(a: Server, b: Server) { if (a.name > b.name) { return 1; - } - else if (a.name < b.name) { + } else if (a.name < b.name) { return -1; } return 0; diff --git a/Code/skyrim_ui/src/app/components/settings/settings.component.ts b/Code/skyrim_ui/src/app/components/settings/settings.component.ts index 0abfe9aa9..0b8d0330c 100644 --- a/Code/skyrim_ui/src/app/components/settings/settings.component.ts +++ b/Code/skyrim_ui/src/app/components/settings/settings.component.ts @@ -1,83 +1,91 @@ -import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output, ViewEncapsulation } from "@angular/core"; -import { ClientService } from "src/app/services/client.service"; -import { SettingService } from "src/app/services/setting.service"; +import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core'; +import { ClientService } from 'src/app/services/client.service'; +import { SettingService } from 'src/app/services/setting.service'; + @Component({ - selector: 'app-settings', - templateUrl: './settings.component.html', - styleUrls: ['./settings.component.scss'], - encapsulation: ViewEncapsulation.None, + selector: 'app-settings', + templateUrl: './settings.component.html', + styleUrls: ['./settings.component.scss'], + encapsulation: ViewEncapsulation.None, }) export class SettingsComponent implements OnInit, OnDestroy { - @Output() - public done = new EventEmitter(); - @Output() - public setView = new EventEmitter(); - - public volume: number; - public muted: boolean; - public showDebug: boolean; - public autoHideParty: boolean; - public showParty: boolean; - public autoHideTime: number; - - constructor(private settings: SettingService, private client: ClientService) { - - } - ngOnDestroy(): void { - - } - ngOnInit(): void { - this.volume = this.settings.getVolume(); - this.muted = this.settings.isAudioMuted(); - this.showDebug = this.settings.isDebugShown(); - this.autoHideParty = this.settings.isPartyAutoHidden(); - this.showParty = this.settings.isPartyShown(); - this.autoHideTime = this.settings.getAutoHideTime(); - } - - public cancel(): void { - this.done.next(); - } - - onMutedChange(event: any) { - this.settings.muteAudio(event.target.checked); - } - onVolumeChange(event: any) { - this.settings.setVolume(event.target.value); - } - - onShowDebugChange(event: any) { - this.settings.setDebugShown(event.target.checked); - this.client.debugStateChange.next(event.target.checked); - } - - onShowPartyChange(event: any) { - this.settings.showParty(event.target.checked); - } - onAutoHidePartyChange(event: any) { - this.settings.autoHideParty(event.target.checked); - this.autoHideParty = event.target.checked; - } - onAutoHideTimeChange(event: any) { - this.settings.setAutoHideTime(event.target.value); - this.autoHideTime = event.target.value; - } - - public autoHideTimeSelected(number: number): boolean { - return this.settings.getAutoHideTime() === number; - } - - private close() { - this.done.next(); - } - - @HostListener('window:keydown.escape', ['$event']) - // @ts-ignore - private activate(event: KeyboardEvent): void { - this.close(); - event.stopPropagation(); - event.preventDefault(); - } + @Output() + public done = new EventEmitter(); + @Output() + public setView = new EventEmitter(); + + public volume: number; + public muted: boolean; + public showDebug: boolean; + public autoHideParty: boolean; + public showParty: boolean; + public autoHideTime: number; + + constructor( + private settings: SettingService, + private client: ClientService, + ) { + } + + ngOnDestroy(): void { + + } + + ngOnInit(): void { + this.volume = this.settings.getVolume(); + this.muted = this.settings.isAudioMuted(); + this.showDebug = this.settings.isDebugShown(); + this.autoHideParty = this.settings.isPartyAutoHidden(); + this.showParty = this.settings.isPartyShown(); + this.autoHideTime = this.settings.getAutoHideTime(); + } + + public cancel(): void { + this.done.next(); + } + + onMutedChange(event: any) { + this.settings.muteAudio(event.target.checked); + } + + onVolumeChange(event: any) { + this.settings.setVolume(event.target.value); + } + + onShowDebugChange(event: any) { + this.settings.setDebugShown(event.target.checked); + this.client.debugStateChange.next(event.target.checked); + } + + onShowPartyChange(event: any) { + this.settings.showParty(event.target.checked); + } + + onAutoHidePartyChange(event: any) { + this.settings.autoHideParty(event.target.checked); + this.autoHideParty = event.target.checked; + } + + onAutoHideTimeChange(event: any) { + this.settings.setAutoHideTime(event.target.value); + this.autoHideTime = event.target.value; + } + + public autoHideTimeSelected(number: number): boolean { + return this.settings.getAutoHideTime() === number; + } + + private close() { + this.done.next(); + } + + @HostListener('window:keydown.escape', ['$event']) + // @ts-ignore + private activate(event: KeyboardEvent): void { + this.close(); + event.stopPropagation(); + event.preventDefault(); + } } diff --git a/Code/skyrim_ui/src/app/services/client.service.ts b/Code/skyrim_ui/src/app/services/client.service.ts index 220abb719..f179b0deb 100644 --- a/Code/skyrim_ui/src/app/services/client.service.ts +++ b/Code/skyrim_ui/src/app/services/client.service.ts @@ -1,14 +1,13 @@ import { Injectable, NgZone, OnDestroy } from '@angular/core'; - -import { BehaviorSubject, ReplaySubject, AsyncSubject, Subject } from 'rxjs'; - +import { AsyncSubject, BehaviorSubject, ReplaySubject, Subject } from 'rxjs'; import { environment } from '../../environments/environment'; import { Debug } from '../models/debug'; -import { Player } from '../models/player'; import { PartyInfo } from '../models/party-info'; +import { Player } from '../models/player'; import { ErrorService } from './error.service'; import { LoadingService } from './loading.service'; + /** Message. */ export interface Message { /** Player name. Unset if it's a system message. */ @@ -33,7 +32,7 @@ export class ClientService implements OnDestroy { public inGameStateChange = new BehaviorSubject(!environment.game); /** Opening/close menu change. */ - public openingMenuChange = new BehaviorSubject(false); + public openingMenuChange = new BehaviorSubject(true); /** Message reception. */ public messageReception = new ReplaySubject(); @@ -62,7 +61,7 @@ export class ClientService implements OnDestroy { public partyInfoChange = new Subject(); /** Connect party info change. */ - public partyLeftChange = new Subject(); + public partyLeftChange = new Subject(); /** Connect party invite received. */ public partyInviteReceivedChange = new Subject(); @@ -88,12 +87,12 @@ export class ClientService implements OnDestroy { public triggerError = new BehaviorSubject(''); /** Used purely for debugging. */ - public debugChange = new Subject(); + public debugChange = new Subject(); // The below emitters are used in the mocking service /** Used for when a party leader changed. */ - public partyLaunchedChange = new Subject(); + public partyLaunchedChange = new Subject(); /** Used for when a party invite is sent. */ public partyInviteChange = new Subject(); @@ -119,10 +118,12 @@ export class ClientService implements OnDestroy { /** * Instantiate. - * - * @param zone Angular Zone. */ - public constructor(private zone: NgZone, private errorService: ErrorService, private loadingService: LoadingService) { + public constructor( + private zone: NgZone, + private errorService: ErrorService, + private loadingService: LoadingService, + ) { if (environment.game) { skyrimtogether.on('init', this.onInit.bind(this)); skyrimtogether.on('activate', this.onActivate.bind(this)); @@ -202,15 +203,14 @@ export class ClientService implements OnDestroy { * @param host IP address or hostname. * @param port Port. */ - public connect(host: string, port: number, token = ""): void { + public connect(host: string, port: number, token = ''): void { if (environment.game) { skyrimtogether.connect(host, port, token); this.isConnectionInProgressChange.next(true); this._host = host; this._port = port; this._token = token; - } - else { + } else { this.connectionStateChange.next(true); this.isConnectionInProgressChange.next(false); } @@ -223,8 +223,7 @@ export class ClientService implements OnDestroy { if (environment.game) { skyrimtogether.disconnect(); this._remainingReconnectionAttempt = 0; - } - else { + } else { this.connectionStateChange.next(false); } } @@ -237,81 +236,74 @@ export class ClientService implements OnDestroy { public sendMessage(message: string): void { if (environment.game) { skyrimtogether.sendMessage(message); - } - else { + } else { this.messageReception.next({ name: this.nameChange.value, content: message }); } } - + /** * Launch a party. */ public launchParty(): void { if (environment.game) { skyrimtogether.launchParty(); - } - else { + } else { this.partyLaunchedChange.next(); this.onPartyCreated(); } } - + /** * Create a party invite. */ public createPartyInvite(playerId: number): void { if (environment.game) { skyrimtogether.createPartyInvite(playerId); - } - else { + } else { this.partyInviteChange.next(playerId); } } - + /** * Accept a party invite. */ public acceptPartyInvite(inviterId: number): void { if (environment.game) { skyrimtogether.acceptPartyInvite(inviterId); - } - else { + } else { this.partyJoinedChange.next(inviterId); } } - + /** * As a party leader, kick a player from the party. */ public kickPartyMember(playerId: number): void { if (environment.game) { skyrimtogether.kickPartyMember(playerId); - } - else { + } else { this.memberKickedChange.next(playerId); } } - + /** * Leave a party. */ public leaveParty(): void { if (environment.game) { skyrimtogether.leaveParty(); - } - else { + } else { this.onPartyLeft(); } } - + /** * As a party leader, make someone else the leader. */ public changePartyLeader(playerId: number): void { if (environment.game) { skyrimtogether.changePartyLeader(playerId); - } - else { + } else { this.partyLeaderChange.next(playerId); } } @@ -322,8 +314,7 @@ export class ClientService implements OnDestroy { public deactivate(): void { if (environment.game) { skyrimtogether.deactivate(); - } - else { + } else { this.activationStateChange.next(this.activationStateChange.value); } } @@ -341,9 +332,8 @@ export class ClientService implements OnDestroy { public teleportToPlayer(playerId: number): void { if (environment.game) { skyrimtogether.teleportToPlayer(playerId); - } - else { - this.messageReception.next({ content: "Simulating teleport" }); + } else { + this.messageReception.next({ content: 'Simulating teleport' }); } } @@ -433,10 +423,10 @@ export class ClientService implements OnDestroy { * @param name Sender's name. * @param message Message content. */ - private onDialogueMessage(name: string, message: string): void { + private onDialogueMessage(name: string, message: string): void { let dialogue = true; this.zone.run(() => { - this.messageReception.next({ name, content: message, dialogue: dialogue}); + this.messageReception.next({ name, content: message, dialogue: dialogue }); }); } @@ -462,7 +452,7 @@ export class ClientService implements OnDestroy { if (isError && this._remainingReconnectionAttempt > 0) { this._remainingReconnectionAttempt--; - this.messageReception.next({ content: `Connection lost, trying to reconnect. ${this._remainingReconnectionAttempt} attempts left.` }) + this.messageReception.next({ content: `Connection lost, trying to reconnect. ${ this._remainingReconnectionAttempt } attempts left.` }); this.connect(this._host, this._port, this._token); } }); @@ -505,12 +495,12 @@ export class ClientService implements OnDestroy { RTT: number, packetLoss: number, sentBandwidth: number, - receivedBandwidth: number + receivedBandwidth: number, ): void { this.zone.run(() => { this.debugDataChange.next(new Debug( numPacketsSent, numPacketsReceived, RTT, packetLoss, sentBandwidth, - receivedBandwidth + receivedBandwidth, )); }); } @@ -523,8 +513,8 @@ export class ClientService implements OnDestroy { id: playerId, connected: true, level: level, - cellName: cellName - } + cellName: cellName, + }, )); }); } @@ -535,8 +525,8 @@ export class ClientService implements OnDestroy { { name: username, id: playerId, - connected: false - } + connected: false, + }, )); }); } @@ -550,44 +540,44 @@ export class ClientService implements OnDestroy { private onSetLevel(playerId: number, level: number) { this.zone.run(() => { this.levelChange.next(new Player({ id: playerId, level: level })); - }) + }); } private onSetCell(playerId: number, cellName: string) { this.zone.run(() => { this.cellChange.next(new Player({ id: playerId, cellName: cellName })); - }) + }); } private onSetPlayer3dLoaded(playerId: number, health: number) { this.zone.run(() => { - this.isLoadedChange.next(new Player({id: playerId, isLoaded: true, health: health})); - }) + this.isLoadedChange.next(new Player({ id: playerId, isLoaded: true, health: health })); + }); } private onSetPlayer3dUnloaded(playerId: number) { this.zone.run(() => { - this.isLoadedChange.next(new Player({id: playerId, isLoaded: false})); - }) + this.isLoadedChange.next(new Player({ id: playerId, isLoaded: false })); + }); } private onSetLocalPlayerId(playerId: number) { this.zone.run(() => { this.localPlayerId = playerId; - }) + }); } private onProtocolMismatch() { this.zone.run(() => { this.protocolMismatchChange.next(true); - }) + }); } private onTriggerError(error: string) { this.zone.run(() => { this.triggerError.next(error); this.errorService.error(error); - }) + }); } private onDummyData(data: Array) { @@ -599,7 +589,7 @@ export class ClientService implements OnDestroy { } console.log(data); */ - }) + }); } public onPartyInfo(playerIds: Array, leaderId: number) { @@ -607,10 +597,10 @@ export class ClientService implements OnDestroy { this.partyInfoChange.next(new PartyInfo( { playerIds: playerIds, - leaderId: leaderId - } + leaderId: leaderId, + }, )); - }) + }); } private onPartyCreated() { @@ -619,21 +609,21 @@ export class ClientService implements OnDestroy { this.partyInfoChange.next(new PartyInfo( { playerIds: [this.localPlayerId], - leaderId: this.localPlayerId - } + leaderId: this.localPlayerId, + }, )); - }) + }); } private onPartyLeft() { this.zone.run(() => { this.partyLeftChange.next(); - }) + }); } private onPartyInviteReceived(inviterId: number) { this.zone.run(() => { this.partyInviteReceivedChange.next(inviterId); - }) + }); } } diff --git a/Code/skyrim_ui/src/app/services/mock-client.service.ts b/Code/skyrim_ui/src/app/services/mock-client.service.ts index f7aacc965..6370a1a9c 100644 --- a/Code/skyrim_ui/src/app/services/mock-client.service.ts +++ b/Code/skyrim_ui/src/app/services/mock-client.service.ts @@ -6,7 +6,7 @@ import { ClientService } from './client.service'; // TODO: this is bad. We shouldn't take different paths to accommodate for // mock testing. Instead, the skyrimtogether global should be mockable. @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class MockClientService implements OnDestroy { @@ -20,29 +20,31 @@ export class MockClientService implements OnDestroy { private partyLeftSubscription: Subscription; private partyLeaderSubscription: Subscription; - constructor(private clientService: ClientService) { - this.partyInfo = new PartyInfo({ - playerIds: [], - leaderId: undefined - }); + constructor( + private clientService: ClientService, + ) { + this.partyInfo = new PartyInfo({ + playerIds: [], + leaderId: undefined, + }); this.onDebug(); - this.onPartyLaunched(); - this.onPartyInvite(); - this.onPartyJoined(); - this.onMemberKicked(); - this.onPartyLeft(); - this.onLeaderChanged(); + this.onPartyLaunched(); + this.onPartyInvite(); + this.onPartyJoined(); + this.onMemberKicked(); + this.onPartyLeft(); + this.onLeaderChanged(); } ngOnDestroy() { this.debugSubscription.unsubscribe(); - this.partyLaunchedSubscription.unsubscribe(); - this.partyInviteSubscription.unsubscribe(); - this.partyJoinedSubscription.unsubscribe(); - this.memberKickedSubscription.unsubscribe(); - this.partyLeftSubscription.unsubscribe(); - this.partyLeaderSubscription.unsubscribe(); + this.partyLaunchedSubscription.unsubscribe(); + this.partyInviteSubscription.unsubscribe(); + this.partyJoinedSubscription.unsubscribe(); + this.memberKickedSubscription.unsubscribe(); + this.partyLeftSubscription.unsubscribe(); + this.partyLeaderSubscription.unsubscribe(); } private onDebug() { @@ -52,45 +54,45 @@ export class MockClientService implements OnDestroy { } private onPartyLaunched() { - this.partyLaunchedSubscription = this.clientService.partyLaunchedChange.subscribe(() => { - this.partyInfo.leaderId = this.clientService.localPlayerId; - }) + this.partyLaunchedSubscription = this.clientService.partyLaunchedChange.subscribe(() => { + this.partyInfo.leaderId = this.clientService.localPlayerId; + }); } private onPartyInvite() { this.partyInviteSubscription = this.clientService.partyInviteChange.subscribe((playerId: number) => { - this.partyInfo.playerIds.push(playerId); - this.clientService.onPartyInfo(this.partyInfo.playerIds, this.partyInfo.leaderId); + this.partyInfo.playerIds.push(playerId); + this.clientService.onPartyInfo(this.partyInfo.playerIds, this.partyInfo.leaderId); }); } private onPartyJoined() { this.partyJoinedSubscription = this.clientService.partyJoinedChange.subscribe((inviterId: number) => { - + }); } private onMemberKicked() { this.memberKickedSubscription = this.clientService.memberKickedChange.subscribe((playerId: number) => { - const index = this.partyInfo.playerIds.indexOf(playerId); - if (index > -1) { - this.partyInfo.playerIds.splice(index, 1); - } - this.clientService.onPartyInfo(this.partyInfo.playerIds, this.partyInfo.leaderId); + const index = this.partyInfo.playerIds.indexOf(playerId); + if (index > -1) { + this.partyInfo.playerIds.splice(index, 1); + } + this.clientService.onPartyInfo(this.partyInfo.playerIds, this.partyInfo.leaderId); }); } private onPartyLeft() { this.partyLeftSubscription = this.clientService.partyLeftChange.subscribe(() => { - this.partyInfo.playerIds.splice(0); - this.partyInfo.leaderId = -1; + this.partyInfo.playerIds.splice(0); + this.partyInfo.leaderId = -1; }); } private onLeaderChanged() { this.partyLeaderSubscription = this.clientService.partyLeaderChange.subscribe((playerId: number) => { - this.partyInfo.leaderId = playerId; - this.clientService.onPartyInfo(this.partyInfo.playerIds, this.partyInfo.leaderId); + this.partyInfo.leaderId = playerId; + this.clientService.onPartyInfo(this.partyInfo.playerIds, this.partyInfo.leaderId); }); } } diff --git a/Code/skyrim_ui/src/polyfills.ts b/Code/skyrim_ui/src/polyfills.ts index 03711e5d9..f85b963ee 100644 --- a/Code/skyrim_ui/src/polyfills.ts +++ b/Code/skyrim_ui/src/polyfills.ts @@ -8,8 +8,8 @@ * file. * * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * automatically update themselves. This includes recent versions of Safari, Chrome (including + * Opera), Edge on the desktop, and iOS and Chrome on mobile. * * Learn more in https://angular.io/guide/browser-support */ @@ -18,16 +18,6 @@ * BROWSER POLYFILLS */ -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - /** * By default, zone.js will patch all possible macroTask and DomEvents * user can disable parts of macroTask/DomEvents patch by setting following flags @@ -55,7 +45,7 @@ /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ -import 'zone.js/dist/zone'; // Included with Angular CLI. +import 'zone.js'; // Included with Angular CLI. /*************************************************************************************************** diff --git a/Code/skyrim_ui/src/styles.scss b/Code/skyrim_ui/src/styles.scss index 0172f21e2..3b7fe6a5b 100644 --- a/Code/skyrim_ui/src/styles.scss +++ b/Code/skyrim_ui/src/styles.scss @@ -50,11 +50,11 @@ input:not([type=checkbox]), textarea, select { display: block; - padding: $-size-gap / 2; + padding: $-size-gap * 0.5; background: transparent; color: mod($-color-background, 1); border: rem($-size-font, 2px) solid; - border-image: url('assets/images/separator/single.svg') 3; + border-image: url("assets/images/separator/single.svg") 3; } input:not([type=checkbox]), @@ -72,7 +72,7 @@ button { font-size: 1rem; text-transform: uppercase; background: transparent; - padding: $-size-gap / 2; + padding: $-size-gap * 0.5; color: mod($-color-background, 1); &:hover:not([disabled]), @@ -127,16 +127,16 @@ button { opacity: 0; width: 1em; height: 1em; - content: ''; + content: ""; background: center / contain no-repeat; } &::before { - margin-right: $-size-gap / 2; + margin-right: $-size-gap * 0.5; } &::after { - margin-left: $-size-gap / 2; + margin-left: $-size-gap * 0.5; } } @@ -189,7 +189,7 @@ $scrollbar: rem($-size-font, 16px); ::-webkit-scrollbar-track { border: rem($-size-font, 3px) solid; - border-image: url('assets/images/scrollbar/track.svg') 4 fill; + border-image: url("assets/images/scrollbar/track.svg") 4 fill; } ::-webkit-scrollbar-thumb { @@ -210,7 +210,7 @@ input[type=checkbox] { } ::-webkit-slider-runnable-track { - border-image: url('assets/images/scrollbar/track.svg') 4 fill; + border-image: url("assets/images/scrollbar/track.svg") 4 fill; } ::-webkit-slider-thumb { @@ -249,6 +249,6 @@ body { body { margin: 0; - font-family: 'futura-condensed-medium', 'Roboto Condensed', 'Trebutchet MS', 'Tahoma', 'Geneva', - 'Verdana', 'sans-serif'; -} \ No newline at end of file + font-family: "futura-condensed-medium", "Roboto Condensed", "Trebutchet MS", "Tahoma", "Geneva", + "Verdana", "sans-serif"; +} diff --git a/Code/skyrim_ui/src/styles/functions/rem.scss b/Code/skyrim_ui/src/styles/functions/rem.scss index 70b0474e9..30f1dac51 100644 --- a/Code/skyrim_ui/src/styles/functions/rem.scss +++ b/Code/skyrim_ui/src/styles/functions/rem.scss @@ -1,3 +1,5 @@ +@use "sass:math"; + @function rem($base, $pixels) { - @return ($pixels / $base) * 1rem; + @return math.div($pixels, $base) * 1rem; } diff --git a/Code/skyrim_ui/tsconfig.base.json b/Code/skyrim_ui/tsconfig.base.json index cf9f03c1b..c2d634151 100644 --- a/Code/skyrim_ui/tsconfig.base.json +++ b/Code/skyrim_ui/tsconfig.base.json @@ -10,7 +10,7 @@ "experimentalDecorators": true, "moduleResolution": "node", "importHelpers": true, - "target": "es5", + "target": "es2020", "module": "es2020", "lib": [ "es2018", From 722a08d526eabb69af1ac57b9f2508f80944ce57 Mon Sep 17 00:00:00 2001 From: scomans Date: Sun, 10 Jul 2022 20:01:47 +0200 Subject: [PATCH 04/47] reworked most UI components --- Code/skyrim_ui/.gitignore | 1 + Code/skyrim_ui/angular.json | 2 +- Code/skyrim_ui/package-lock.json | 29373 ---------------- Code/skyrim_ui/package.json | 7 +- Code/skyrim_ui/pnpm-lock.yaml | 42 +- Code/skyrim_ui/src/app/app.module.ts | 13 +- .../src/app/components/chat/chat.component.ts | 125 +- .../components/connect/connect.component.html | 10 +- .../components/connect/connect.component.scss | 76 +- .../components/connect/connect.component.ts | 33 +- .../app/components/debug/debug.component.html | 17 +- .../app/components/debug/debug.component.ts | 50 +- .../disconnect/disconnect.component.ts | 9 +- .../app/components/error/error.component.html | 4 +- .../app/components/error/error.component.ts | 14 +- .../app/components/group/group.component.html | 29 +- .../app/components/group/group.component.ts | 230 +- .../components/loading/loading.component.html | 2 +- .../components/loading/loading.component.scss | 2 +- .../components/loading/loading.component.ts | 24 +- .../notification-popup.component.html | 2 +- .../notification-popup.component.ts | 66 +- .../notifications/notifications.component.ts | 41 +- .../app/components/order/order.component.html | 8 +- .../app/components/order/order.component.scss | 2 +- .../app/components/order/order.component.ts | 23 +- .../party-menu/party-menu.component.html | 74 +- .../party-menu/party-menu.component.scss | 108 +- .../party-menu/party-menu.component.ts | 160 +- .../player-list/player-list.component.html | 31 +- .../player-list/player-list.component.scss | 116 +- .../player-list/player-list.component.ts | 89 +- .../player-manager.component.html | 36 +- .../player-manager.component.scss | 32 +- .../player-manager.component.ts | 33 +- .../app/components/popup/popup.component.ts | 15 +- .../app/components/root/root.component.html | 103 +- .../src/app/components/root/root.component.ts | 194 +- .../server-list/server-list.component.html | 108 +- .../server-list/server-list.component.scss | 74 +- .../server-list/server-list.component.ts | 308 +- .../settings/settings.component.html | 104 +- .../settings/settings.component.scss | 149 +- .../components/settings/settings.component.ts | 40 +- .../app/components/toggle/toggle.component.ts | 20 +- .../app/components/window/window.component.ts | 10 +- .../src/app/directives/health.directive.ts | 16 +- Code/skyrim_ui/src/app/models/debug.ts | 16 +- Code/skyrim_ui/src/app/models/server.ts | 37 +- .../src/app/services/asset.service.ts | 67 +- .../src/app/services/asset/destroy.service.ts | 14 + .../src/app/services/client.service.ts | 10 +- .../src/app/services/error.service.ts | 13 +- .../src/app/services/group.service.ts | 123 +- .../src/app/services/loading.service.ts | 9 +- .../src/app/services/mock-client.service.ts | 4 +- .../src/app/services/player-list.service.ts | 41 +- .../services/popup-notification.service.ts | 23 +- .../src/app/services/server-list.service.ts | 22 +- .../src/app/services/setting.service.ts | 109 +- .../src/app/services/sound.service.ts | 16 +- .../src/app/services/store.service.ts | 12 +- Code/skyrim_ui/src/assets/.gitkeep | 0 .../src/environments/environment.browser.ts | 20 +- .../src/environments/environment.nightly.ts | 11 +- .../src/environments/environment.prod.ts | 11 +- .../skyrim_ui/src/environments/environment.ts | 11 +- Code/skyrim_ui/src/styles.scss | 3 +- Code/skyrim_ui/tslint.json | 152 - 69 files changed, 1691 insertions(+), 31058 deletions(-) delete mode 100644 Code/skyrim_ui/package-lock.json create mode 100644 Code/skyrim_ui/src/app/services/asset/destroy.service.ts delete mode 100644 Code/skyrim_ui/src/assets/.gitkeep delete mode 100644 Code/skyrim_ui/tslint.json diff --git a/Code/skyrim_ui/.gitignore b/Code/skyrim_ui/.gitignore index eadb2806f..1fffafaec 100644 --- a/Code/skyrim_ui/.gitignore +++ b/Code/skyrim_ui/.gitignore @@ -1,3 +1,4 @@ +.angular/ node_modules/* out/ dist/ diff --git a/Code/skyrim_ui/angular.json b/Code/skyrim_ui/angular.json index ecd576883..4746a0d49 100644 --- a/Code/skyrim_ui/angular.json +++ b/Code/skyrim_ui/angular.json @@ -34,7 +34,6 @@ "src/assets/sounds/" ], "styles": [ - "./node_modules/@angular/material/prebuilt-themes/pink-bluegrey.css", "src/styles.scss" ], "scripts": [] @@ -68,6 +67,7 @@ ] }, "browser": { + "sourceMap": true, "fileReplacements": [ { "replace": "src/environments/environment.ts", diff --git a/Code/skyrim_ui/package-lock.json b/Code/skyrim_ui/package-lock.json deleted file mode 100644 index 1196c67ce..000000000 --- a/Code/skyrim_ui/package-lock.json +++ /dev/null @@ -1,29373 +0,0 @@ -{ - "name": "skyrim-together-ui", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "skyrim-together-ui", - "version": "0.0.0", - "dependencies": { - "@angular/animations": "^11.2.3", - "@angular/cdk": "^11.2.13", - "@angular/common": "^11.2.3", - "@angular/compiler": "^11.2.3", - "@angular/core": "^11.2.3", - "@angular/forms": "^11.2.3", - "@angular/material": "^11.2.13", - "@angular/platform-browser": "^11.2.3", - "@angular/platform-browser-dynamic": "^11.2.3", - "@angular/router": "^11.2.3", - "@fortawesome/angular-fontawesome": "^0.8.2", - "@fortawesome/fontawesome-svg-core": "^1.2.15", - "@fortawesome/free-regular-svg-icons": "^5.9.0", - "@fortawesome/free-solid-svg-icons": "^5.7.2", - "rxjs": "~6.5.5", - "tslib": "^2.0.0", - "zone.js": "~0.10.3" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^0.1102.2", - "@angular/cli": "^11.2.2", - "@angular/compiler-cli": "^11.2.3", - "@types/jasmine": "^3.6.4", - "@types/jasminewd2": "^2.0.8", - "@types/node": "^12.11.1", - "codelyzer": "^6.0.0", - "jasmine-core": "^3.6.0", - "jasmine-spec-reporter": "^6.0.0", - "karma": "^6.1.1", - "karma-chrome-launcher": "^3.1.0", - "karma-coverage-istanbul-reporter": "^3.0.3", - "karma-jasmine": "^4.0.1", - "karma-jasmine-html-reporter": "^1.5.4", - "prepend-http": "^3.0.1", - "protractor": "~7.0.0", - "query-string": "^6.14.1", - "sort-keys": "^4.2.0", - "ts-node": "~8.3.0", - "tslint": "~6.1.0", - "typescript": "~4.1.*" - } - }, - "node_modules/@angular-devkit/architect": { - "version": "0.1102.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "11.2.6", - "rxjs": "6.6.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "6.6.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-devkit/build-angular": { - "version": "0.1102.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1102.6", - "@angular-devkit/build-optimizer": "0.1102.6", - "@angular-devkit/build-webpack": "0.1102.6", - "@angular-devkit/core": "11.2.6", - "@babel/core": "7.12.10", - "@babel/generator": "7.12.11", - "@babel/plugin-transform-async-to-generator": "7.12.1", - "@babel/plugin-transform-runtime": "7.12.10", - "@babel/preset-env": "7.12.11", - "@babel/runtime": "7.12.5", - "@babel/template": "7.12.7", - "@discoveryjs/json-ext": "0.5.2", - "@jsdevtools/coverage-istanbul-loader": "3.0.5", - "@ngtools/webpack": "11.2.6", - "ansi-colors": "4.1.1", - "autoprefixer": "10.2.4", - "babel-loader": "8.2.2", - "browserslist": "^4.9.1", - "cacache": "15.0.5", - "caniuse-lite": "^1.0.30001032", - "circular-dependency-plugin": "5.2.2", - "copy-webpack-plugin": "6.3.2", - "core-js": "3.8.3", - "critters": "0.0.7", - "css-loader": "5.0.1", - "cssnano": "4.1.10", - "file-loader": "6.2.0", - "find-cache-dir": "3.3.1", - "glob": "7.1.6", - "https-proxy-agent": "5.0.0", - "inquirer": "7.3.3", - "jest-worker": "26.6.2", - "karma-source-map-support": "1.4.0", - "less": "4.1.1", - "less-loader": "7.3.0", - "license-webpack-plugin": "2.3.11", - "loader-utils": "2.0.0", - "mini-css-extract-plugin": "1.3.5", - "minimatch": "3.0.4", - "open": "7.4.0", - "ora": "5.3.0", - "parse5-html-rewriting-stream": "6.0.1", - "pnp-webpack-plugin": "1.6.4", - "postcss": "8.2.4", - "postcss-import": "14.0.0", - "postcss-loader": "4.2.0", - "raw-loader": "4.0.2", - "regenerator-runtime": "0.13.7", - "resolve-url-loader": "3.1.2", - "rimraf": "3.0.2", - "rollup": "2.38.4", - "rxjs": "6.6.3", - "sass": "1.32.6", - "sass-loader": "10.1.1", - "semver": "7.3.4", - "source-map": "0.7.3", - "source-map-loader": "1.1.3", - "source-map-support": "0.5.19", - "speed-measure-webpack-plugin": "1.4.2", - "style-loader": "2.0.0", - "stylus": "0.54.8", - "stylus-loader": "4.3.3", - "terser": "5.5.1", - "terser-webpack-plugin": "4.2.3", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "webpack": "4.44.2", - "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.11.2", - "webpack-merge": "5.7.3", - "webpack-sources": "2.2.0", - "webpack-subresource-integrity": "1.5.2", - "worker-plugin": "5.0.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^11.0.0 || ^11.2.0-next", - "@angular/localize": "^11.0.0 || ^11.2.0-next", - "@angular/service-worker": "^11.0.0 || ^11.2.0-next", - "karma": "^5.2.0 || ^6.0.0", - "ng-packagr": "^11.0.0 || ^11.2.0-next", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0", - "tslint": "^6.1.0", - "typescript": "~4.0.0 || ~4.1.0" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "karma": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "protractor": { - "optional": true - }, - "tailwindcss": { - "optional": true - }, - "tslint": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "6.6.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-devkit/build-optimizer": { - "version": "0.1102.6", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils": "2.0.0", - "source-map": "0.7.3", - "tslib": "2.1.0", - "typescript": "4.1.5", - "webpack-sources": "2.2.0" - }, - "bin": { - "build-optimizer": "src/build-optimizer/cli.js" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1102.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1102.6", - "@angular-devkit/core": "11.2.6", - "rxjs": "6.6.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^4.6.0", - "webpack-dev-server": "^3.1.4" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "6.6.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-devkit/core": { - "version": "11.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "6.12.6", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.6.3", - "source-map": "0.7.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "6.6.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular-devkit/schematics": { - "version": "11.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "11.2.6", - "ora": "5.3.0", - "rxjs": "6.6.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "6.6.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/@angular/animations": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/core": "11.2.7" - } - }, - "node_modules/@angular/cdk": { - "version": "11.2.13", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "optionalDependencies": { - "parse5": "^5.0.0" - }, - "peerDependencies": { - "@angular/common": "^11.0.0 || ^12.0.0-0", - "@angular/core": "^11.0.0 || ^12.0.0-0" - } - }, - "node_modules/@angular/cdk/node_modules/parse5": { - "version": "5.1.1", - "license": "MIT", - "optional": true - }, - "node_modules/@angular/cli": { - "version": "11.2.6", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/architect": "0.1102.6", - "@angular-devkit/core": "11.2.6", - "@angular-devkit/schematics": "11.2.6", - "@schematics/angular": "11.2.6", - "@schematics/update": "0.1102.6", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "4.3.1", - "ini": "2.0.0", - "inquirer": "7.3.3", - "jsonc-parser": "3.0.0", - "npm-package-arg": "8.1.0", - "npm-pick-manifest": "6.1.0", - "open": "7.4.0", - "ora": "5.3.0", - "pacote": "11.2.4", - "resolve": "1.19.0", - "rimraf": "3.0.2", - "semver": "7.3.4", - "symbol-observable": "3.0.0", - "universal-analytics": "0.4.23", - "uuid": "8.3.2" - }, - "bin": { - "ng": "bin/ng" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/common": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/core": "11.2.7", - "rxjs": "^6.5.3" - } - }, - "node_modules/@angular/compiler": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/compiler-cli": { - "version": "11.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.6", - "@babel/types": "^7.8.6", - "canonical-path": "1.0.0", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.7.2", - "fs-extra": "4.0.2", - "magic-string": "^0.25.0", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.2", - "semver": "^6.3.0", - "source-map": "^0.6.1", - "sourcemap-codec": "^1.4.8", - "tslib": "^2.0.0", - "yargs": "^16.1.1" - }, - "bin": { - "ivy-ngcc": "ngcc/main-ivy-ngcc.js", - "ng-xi18n": "src/extract_i18n.js", - "ngc": "src/main.js", - "ngcc": "ngcc/main-ngcc.js" - }, - "engines": { - "node": ">=10.0" - }, - "peerDependencies": { - "@angular/compiler": "11.2.7", - "typescript": ">=4.0 <4.2" - } - }, - "node_modules/@angular/compiler-cli/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular/compiler-cli/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/core": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3", - "zone.js": "^0.10.2 || ^0.11.3" - } - }, - "node_modules/@angular/forms": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/common": "11.2.7", - "@angular/core": "11.2.7", - "@angular/platform-browser": "11.2.7", - "rxjs": "^6.5.3" - } - }, - "node_modules/@angular/material": { - "version": "11.2.13", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/animations": "^11.0.0 || ^12.0.0-0", - "@angular/cdk": "11.2.13", - "@angular/common": "^11.0.0 || ^12.0.0-0", - "@angular/core": "^11.0.0 || ^12.0.0-0", - "@angular/forms": "^11.0.0 || ^12.0.0-0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/animations": "11.2.7", - "@angular/common": "11.2.7", - "@angular/core": "11.2.7" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/common": "11.2.7", - "@angular/compiler": "11.2.7", - "@angular/core": "11.2.7", - "@angular/platform-browser": "11.2.7" - } - }, - "node_modules/@angular/router": { - "version": "11.2.7", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/common": "11.2.7", - "@angular/core": "11.2.7", - "@angular/platform-browser": "11.2.7", - "rxjs": "^6.5.3" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.12.13" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.13.12", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core": { - "version": "7.12.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.12.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.13.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.13.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-split-export-declaration": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.12.17", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "regexpu-core": "^4.7.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.13.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-function-name/node_modules/@babel/template": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.13.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.13.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.13.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.13.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.13.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.13.12" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.12.17", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/helpers": { - "version": "7.13.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/template": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/highlight": { - "version": "7.13.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.13.12", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.8", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.13.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-split-export-declaration": "^7.12.13", - "globals": "^11.1.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.13.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-hoist-variables": "^7.13.0", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-identifier": "^7.12.11", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.12.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "semver": "^5.5.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.12.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.12.7", - "@babel/helper-compilation-targets": "^7.12.5", - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.11", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.7", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.11", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.7", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.10", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.11", - "core-js-compat": "^3.8.0", - "semver": "^5.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.12.5", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/template": { - "version": "7.12.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "node_modules/@babel/traverse": { - "version": "7.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.13.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.13.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/traverse/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/types": { - "version": "7.13.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@fortawesome/angular-fontawesome": { - "version": "0.8.2", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" - }, - "peerDependencies": { - "@angular/core": "^11.0.0", - "@fortawesome/fontawesome-svg-core": "^1.2.27" - } - }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "0.2.35", - "hasInstallScript": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "1.2.35", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.35" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-regular-svg-icons": { - "version": "5.15.3", - "hasInstallScript": true, - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.35" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "5.15.3", - "hasInstallScript": true, - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "^0.2.35" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jsdevtools/coverage-istanbul-loader": { - "version": "3.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.3", - "loader-utils": "^2.0.0", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.7.0" - } - }, - "node_modules/@ngtools/webpack": { - "version": "11.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "11.2.6", - "enhanced-resolve": "5.7.0", - "webpack-sources": "2.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^11.0.0 || ^11.2.0-next", - "typescript": "~4.0.0 || ~4.1.0", - "webpack": "^4.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/ci-detect": { - "version": "1.3.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@npmcli/git": { - "version": "2.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^1.1.0", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.3", - "npm-pick-manifest": "^6.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.2", - "unique-filename": "^1.1.1", - "which": "^2.0.2" - } - }, - "node_modules/@npmcli/git/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@npmcli/git/node_modules/promise-retry": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/git/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "dev": true, - "license": "ISC", - "dependencies": { - "infer-owner": "^1.0.4" - } - }, - "node_modules/@npmcli/run-script": { - "version": "1.8.4", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "infer-owner": "^1.0.4", - "node-gyp": "^7.1.0", - "read-package-json-fast": "^2.0.1" - } - }, - "node_modules/@npmcli/run-script/node_modules/read-package-json-fast": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@schematics/angular": { - "version": "11.2.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "11.2.6", - "@angular-devkit/schematics": "11.2.6", - "jsonc-parser": "3.0.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@schematics/update": { - "version": "0.1102.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "11.2.6", - "@angular-devkit/schematics": "11.2.6", - "@yarnpkg/lockfile": "1.1.0", - "ini": "2.0.0", - "npm-package-arg": "^8.0.0", - "pacote": "11.2.4", - "semver": "7.3.4", - "semver-intersect": "1.4.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": "^6.11.0 || ^7.5.6", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/component-emitter": { - "version": "1.2.10", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/cookie": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/cors": { - "version": "2.8.10", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "3.6.8", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/jasminewd2": { - "version": "2.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/jasmine": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimatch": { - "version": "3.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "12.20.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/q": { - "version": "0.0.32", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/selenium-webdriver": { - "version": "3.0.17", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/source-list-map": { - "version": "0.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/webpack-sources": { - "version": "0.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.6.1" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/abab": { - "version": "2.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/accepts": { - "version": "1.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "6.4.2", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html": { - "version": "0.0.7", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-root-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "dev": true, - "license": "ISC" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.5", - "dev": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argparse/node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/aria-query": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "node_modules/arity-n": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asn1": { - "version": "0.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "dev": true, - "license": "MIT" - }, - "node_modules/assert": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/async": { - "version": "2.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/atob": { - "version": "2.1.2", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.1", - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "fraction.js": "^4.0.13", - "normalize-range": "^0.1.2", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "dev": true, - "license": "MIT" - }, - "node_modules/axobject-query": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "ast-types-flow": "0.0.7" - } - }, - "node_modules/babel-loader": { - "version": "8.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/base": { - "version": "0.11.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "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" - } - ], - "license": "MIT" - }, - "node_modules/base64id": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "dev": true, - "license": "MIT" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/blocking-proxy": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "blocking-proxy": "built/lib/bin.js" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "dev": true, - "license": "MIT" - }, - "node_modules/bn.js": { - "version": "5.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/bonjour": { - "version": "3.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "dev": true, - "license": "ISC", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "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" - } - ], - "license": "MIT" - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.16.3", - "dev": true, - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/browserstack": { - "version": "1.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "https-proxy-agent": "^2.2.1" - } - }, - "node_modules/browserstack/node_modules/agent-base": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/browserstack/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/browserstack/node_modules/https-proxy-agent": { - "version": "2.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "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" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/builtins": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001204", - "dev": true, - "license": "CC-BY-4.0" - }, - "node_modules/canonical-path": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/caseless": { - "version": "0.12.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT" - }, - "node_modules/chokidar": { - "version": "3.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/chrome-trace-event/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/circular-dependency-plugin": { - "version": "5.2.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.1" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/coa/node_modules/@types/q": { - "version": "1.5.4", - "dev": true, - "license": "MIT" - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular/compiler": "9.0.0", - "@angular/core": "9.0.0", - "app-root-path": "^3.0.0", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "rxjs": "^6.5.3", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2", - "tslib": "^1.10.0", - "zone.js": "~0.10.3" - }, - "peerDependencies": { - "@angular/compiler": ">=2.3.1 <12.0.0 || ^11.0.0-next || ^11.1.0-next || ^11.2.0-next", - "@angular/core": ">=2.3.1 <12.0.0 || ^11.0.0-next || ^11.1.0-next || ^11.2.0-next", - "tslint": "^5.0.0 || ^6.0.0" - } - }, - "node_modules/codelyzer/node_modules/@angular/compiler": { - "version": "9.0.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "tslib": "^1.10.0" - } - }, - "node_modules/codelyzer/node_modules/@angular/core": { - "version": "9.0.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "rxjs": "^6.5.3", - "tslib": "^1.10.0", - "zone.js": "~0.10.2" - } - }, - "node_modules/codelyzer/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colorette": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/colors": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" - }, - "node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/compose-function": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "arity-n": "^1.0.4" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/connect": { - "version": "3.7.0", - "dev": true, - "license": "MIT", - "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": "1.6.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "dev": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/copy-anything": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-what": "^3.12.0" - } - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/mkdirp": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "6.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cacache": "^15.0.5", - "fast-glob": "^3.2.4", - "find-cache-dir": "^3.3.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.1", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/copy-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/core-js": { - "version": "3.8.3", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.16.3", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "dev": true, - "license": "MIT" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "dev": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/critters": { - "version": "0.0.7", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chalk": "^4.1.0", - "css": "^3.0.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "pretty-bytes": "^5.3.0" - } - }, - "node_modules/critters/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "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.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/critters/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/critters/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/critters/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/critters/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "dev": true, - "license": "MIT", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/css": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "engines": { - "node": ">4" - } - }, - "node_modules/css-declaration-sorter/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/css-declaration-sorter/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-declaration-sorter/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/css-loader": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.2.0", - "cssesc": "^3.0.0", - "icss-utils": "^5.0.0", - "loader-utils": "^2.0.0", - "postcss": "^8.1.4", - "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.1.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.27.0 || ^5.0.0" - } - }, - "node_modules/css-loader/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-parse": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "css": "^2.0.0" - } - }, - "node_modules/css-parse/node_modules/css": { - "version": "2.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "node_modules/css-parse/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-parse/node_modules/source-map-resolve": { - "version": "0.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/css-select": { - "version": "2.1.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.3", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "3.4.2", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssauron": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "through": "X.X.X" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "4.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/cssnano-preset-default/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-preset-default/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano-util-raw-cache/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/cssnano/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/custom-event": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/cyclist": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/d": { - "version": "1.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.6", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-format": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/debug": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "2.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/depd": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/dependency-graph": { - "version": "0.7.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/detect-node": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/di": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/diff": { - "version": "4.0.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "dev": true, - "license": "MIT" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/dns-packet": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.1.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/domutils": { - "version": "1.7.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.3.700", - "dev": true, - "license": "ISC" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "base64-arraybuffer": "0.1.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/entities": { - "version": "2.2.0", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/errno": { - "version": "0.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "dev": true, - "license": "MIT" - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/eventsource": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "original": "^1.0.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/express": { - "version": "4.17.1", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "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", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/cookie": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/ext": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "dev": true, - "license": "ISC" - }, - "node_modules/extend": { - "version": "3.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fastparse": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.11.0", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "dev": true, - "license": "ISC" - }, - "node_modules/figures": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/filter-obj": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/flush-write-stream/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/flush-write-stream/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.13.3", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.0.13", - "dev": true, - "license": "MIT OR GPL-2.0-or-later", - "engines": { - "node": "*" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/from2/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fs-extra": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/fs-write-stream-atomic/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/gauge": { - "version": "2.7.4", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "dev": true, - "license": "ISC" - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/has-value": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "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" - } - ], - "license": "MIT" - }, - "node_modules/hash.js": { - "version": "1.1.7", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hosted-git-info": { - "version": "3.0.8", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/html-comment-regex": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/html-entities": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "dev": true, - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "1.7.2", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/http-parser-js": { - "version": "0.5.3", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "dev": true, - "license": "MIT", - "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": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "0.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/micromatch": { - "version": "3.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/to-regex-range": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "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" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/iferr": { - "version": "0.1.5", - "dev": true, - "license": "MIT" - }, - "node_modules/ignore": { - "version": "5.1.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/ini": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer": { - "version": "7.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "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.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/rxjs": { - "version": "6.6.6", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "dev": true, - "license": "MIT" - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "dev": true, - "license": "MIT" - }, - "node_modules/is-callable": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-cwd": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-in-cwd": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/is-stream": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-svg": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "html-comment-regex": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-what": { - "version": "3.14.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/isbinaryfile": { - "version": "4.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "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", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "3.0.6", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/pify": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jasmine": { - "version": "2.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "bin": { - "jasmine": "bin/jasmine.js" - } - }, - "node_modules/jasmine-core": { - "version": "3.7.1", - "dev": true, - "license": "MIT" - }, - "node_modules/jasmine-spec-reporter": { - "version": "6.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "colors": "1.4.0" - } - }, - "node_modules/jasmine/node_modules/jasmine-core": { - "version": "2.8.0", - "dev": true, - "license": "MIT" - }, - "node_modules/jasminewd2": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.9.x" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema": { - "version": "0.2.3", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/json3": { - "version": "3.3.3", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/jsprim": { - "version": "1.4.1", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/jszip": { - "version": "3.6.0", - "dev": true, - "license": "(MIT OR GPL-3.0)", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/karma": { - "version": "6.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.4.2", - "colors": "^1.4.0", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", - "minimatch": "^3.0.4", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^3.1.0", - "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "^0.7.23", - "yargs": "^16.1.1" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/mattlewis92" - } - }, - "node_modules/karma-jasmine": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "jasmine-core": "^3.6.0" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "karma": "*" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "1.5.4", - "dev": true, - "license": "MIT", - "peerDependencies": { - "jasmine-core": ">=3.5", - "karma": ">=0.9", - "karma-jasmine": ">=1.1" - } - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/karma/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klona": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/less": { - "version": "4.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^1.10.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": "^2.5.2", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "7.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/less-loader/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/less/node_modules/make-dir": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/mime": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/less/node_modules/pify": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/less/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/less/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/license-webpack-plugin": { - "version": "2.3.11", - "dev": true, - "license": "ISC", - "dependencies": { - "@types/webpack-sources": "^0.1.5", - "webpack-sources": "^1.2.0" - } - }, - "node_modules/license-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/license-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "dev": true, - "license": "MIT" - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log4js": { - "version": "6.3.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/loglevel": { - "version": "1.7.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "dev": true, - "license": "MIT", - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "dev": true, - "license": "ISC" - }, - "node_modules/make-fetch-happen": { - "version": "8.0.14", - "dev": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/err-code": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/make-fetch-happen/node_modules/promise-retry": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/memory-fs/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/merge-source-map/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "dev": true, - "license": "MIT" - }, - "node_modules/mime": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.46.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.29", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.46.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "1.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "dev": true, - "license": "MIT" - }, - "node_modules/minipass": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/mkdirp": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "dev": true, - "license": "ISC" - }, - "node_modules/nanoid": { - "version": "3.1.22", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/needle": { - "version": "2.6.0", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/next-tick": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/node-forge": { - "version": "0.10.0", - "dev": true, - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp": { - "version": "7.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "dev": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/node-libs-browser/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/node-libs-browser/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/node-releases": { - "version": "1.1.71", - "dev": true, - "license": "MIT" - }, - "node_modules/nopt": { - "version": "5.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-install-checks": { - "version": "4.0.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/npm-package-arg": { - "version": "8.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^3.0.6", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist": { - "version": "2.1.5", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^3.0.3", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-pick-manifest": { - "version": "6.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-package-arg": "^8.0.0", - "semver": "^7.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "9.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nth-check": { - "version": "1.0.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opn": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora": { - "version": "5.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.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", - "dev": true, - "license": "MIT", - "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.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/original": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "url-parse": "^1.4.3" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pacote": { - "version": "11.2.4", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^2.0.1", - "@npmcli/installed-package-contents": "^1.0.5", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^1.3.0", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.4", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^9.0.0", - "promise-retry": "^1.1.1", - "read-package-json-fast": "^1.1.3", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.1.0" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "dev": true, - "license": "(MIT AND Zlib)" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parallel-transform/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/parallel-transform/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module/node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/parse5-html-rewriting-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "parse5": "^6.0.1", - "parse5-sax-parser": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-sax-parser": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "dev": true, - "license": "(WTFPL OR MIT)" - }, - "node_modules/path-key": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/picomatch": { - "version": "2.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pnp-webpack-plugin": { - "version": "1.6.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ts-pnp": "^1.1.6" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/portfinder/node_modules/mkdirp": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "colorette": "^1.2.1", - "nanoid": "^3.1.20", - "source-map": "^0.6.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-calc": { - "version": "7.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/postcss-calc/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-calc/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-calc/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-colormin": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-colormin/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-colormin/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-colormin/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-colormin/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-convert-values": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-convert-values/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-convert-values/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-discard-comments": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-discard-comments/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-discard-empty": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-discard-empty/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-discard-overridden/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-import": { - "version": "14.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-loader": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/postcss-loader/node_modules/cosmiconfig": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "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/postcss-loader/node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss-loader/node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/postcss-loader/node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-loader/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "4.0.11", - "dev": true, - "license": "MIT", - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-merge-longhand/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-merge-rules": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-merge-rules/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-minify-font-values/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-minify-gradients/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-minify-params": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-minify-params/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-params/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-minify-selectors/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "ISC", - "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", - "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-charset/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-normalize-display-values/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-normalize-positions/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-normalize-repeat-style/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-normalize-string/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-normalize-timing-functions/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-normalize-unicode/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-url": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-normalize-url/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-normalize-whitespace/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-ordered-values": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-ordered-values/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-reduce-initial/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-reduce-transforms/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-svgo/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-svgo/node_modules/postcss-value-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-svgo/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-unique-selectors/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-unique-selectors/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-unique-selectors/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prepend-http": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/process": { - "version": "0.11.10", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/promise-retry": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/protractor": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" - }, - "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=10.13.x" - } - }, - "node_modules/protractor/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/ansi-styles": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/protractor/node_modules/chalk": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/cliui": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/protractor/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/protractor/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/source-map-support": { - "version": "0.4.18", - "dev": true, - "license": "MIT", - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/protractor/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/supports-color": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/protractor/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/y18n": { - "version": "4.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/protractor/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.8.0", - "dev": true, - "license": "MIT" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "dev": true, - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qjobs": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.9" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "6.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "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" - } - ], - "license": "MIT" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-loader": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "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/raw-loader/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "1.2.2", - "dev": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.7", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "4.7.1", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "dev": true, - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.6.9", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/repeat-element": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/requires-port": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.19.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve-url-loader": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.21", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve-url-loader/node_modules/emojis-list": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve-url-loader/node_modules/json5": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.21", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-url-loader/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.10.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rework": { - "version": "1.0.1", - "dev": true, - "dependencies": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - } - }, - "node_modules/rework-visit": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/rework/node_modules/convert-source-map": { - "version": "0.3.5", - "dev": true, - "license": "MIT" - }, - "node_modules/rework/node_modules/css": { - "version": "2.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "node_modules/rework/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rework/node_modules/source-map-resolve": { - "version": "0.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rollup": { - "version": "2.38.4", - "dev": true, - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "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" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rxjs": { - "version": "6.5.5", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/sass": { - "version": "1.32.6", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": ">=2.0.0 <4.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/sass-loader": { - "version": "10.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0", - "sass": "^1.3.0", - "webpack": "^4.36.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/sass-loader/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/saucelabs": { - "version": "1.5.0", - "dev": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/saucelabs/node_modules/agent-base": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/saucelabs/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/saucelabs/node_modules/https-proxy-agent": { - "version": "2.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "dev": true, - "license": "ISC" - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/selfsigned": { - "version": "1.10.8", - "dev": true, - "license": "MIT", - "dependencies": { - "node-forge": "^0.10.0" - } - }, - "node_modules/semver": { - "version": "7.3.4", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/semver-dsl/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-intersect": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^5.0.0" - } - }, - "node_modules/semver-intersect/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.1", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "dev": true, - "license": "ISC" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "dev": true, - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "dev": true, - "license": "MIT", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/source-map-resolve": { - "version": "0.5.3", - "dev": true, - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/socket.io": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/socket.io-parser": { - "version": "4.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/sockjs": { - "version": "0.3.21", - "dev": true, - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs-client": { - "version": "1.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.1" - } - }, - "node_modules/sockjs-client/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs/node_modules/uuid": { - "version": "3.4.0", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/socks": { - "version": "2.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sort-keys": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.7.3", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-loader": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.2", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.6.1", - "whatwg-mimetype": "^2.3.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/source-map-loader/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "dev": true, - "license": "MIT" - }, - "node_modules/spdy": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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/speed-measure-webpack-plugin": { - "version": "1.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "webpack": "^1 || ^2 || ^3 || ^4 || ^5" - } - }, - "node_modules/speed-measure-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/speed-measure-webpack-plugin/node_modules/chalk": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/speed-measure-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/speed-measure-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/speed-measure-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/speed-measure-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/split-on-first": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "dev": true, - "license": "MIT", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "dev": true, - "license": "MIT" - }, - "node_modules/static-extend": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/stream-browserify/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/stream-http/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/streamroller": { - "version": "2.2.4", - "dev": true, - "license": "MIT", - "dependencies": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/streamroller/node_modules/date-format": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "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" - } - ], - "license": "MIT" - }, - "node_modules/string-width": { - "version": "4.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-loader": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "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/style-loader/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/stylehacks": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stylehacks/node_modules/postcss": { - "version": "7.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylehacks/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stylehacks/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stylus": { - "version": "0.54.8", - "dev": true, - "license": "MIT", - "dependencies": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus-loader": { - "version": "4.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.4", - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "stylus": ">=0.52.4", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/stylus-loader/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/stylus/node_modules/debug": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/stylus/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/stylus/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svgo": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/node_modules/mkdirp": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/symbol-observable": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/tapable": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/terser": { - "version": "5.5.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.6", - "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/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "node_modules/through2": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/through2/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "dev": true, - "license": "MIT", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.0.33", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "8.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - }, - "peerDependencies": { - "typescript": ">=2.0" - } - }, - "node_modules/ts-pnp": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.1.0", - "license": "0BSD" - }, - "node_modules/tslint": { - "version": "6.1.3", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - } - }, - "node_modules/tslint/node_modules/mkdirp": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/tslint/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "2.29.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "dev": true, - "license": "Unlicense" - }, - "node_modules/type": { - "version": "1.2.0", - "dev": true, - "license": "ISC" - }, - "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/typescript": { - "version": "4.1.5", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.25", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/uniqs": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universal-analytics": { - "version": "0.4.23", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "request": "^2.88.2", - "uuid": "^3.0.0" - } - }, - "node_modules/universal-analytics/node_modules/uuid": { - "version": "3.4.0", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/unset-value": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/url": { - "version": "0.11.0", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/use": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vendors": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/void-elements": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack": { - "version": "1.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "optional": 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/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "dev": true, - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webdriver-js-extender": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webdriver-manager": { - "version": "12.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "bin": { - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webdriver-manager/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/ansi-styles": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/chalk": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" - }, - "node_modules/webdriver-manager/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webdriver-manager/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/webdriver-manager/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webdriver-manager/node_modules/supports-color": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/webpack": { - "version": "4.44.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.2", - "dev": true, - "license": "MIT", - "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mkdirp": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/webpack-dev-server": { - "version": "3.11.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 6.11.5" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/array-union": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/binary-extensions": { - "version": "1.13.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "2.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui": { - "version": "5.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/del": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/del/node_modules/pify": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/emoji-regex": { - "version": "7.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/webpack-dev-server/node_modules/fill-range": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/find-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "3.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/globby": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-absolute-url": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-dev-server/node_modules/is-binary-path": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-path-cwd": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/is-path-in-cwd": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/is-path-inside": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/locate-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/micromatch": { - "version": "3.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webpack-dev-server/node_modules/p-locate": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/p-map": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-dev-server/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/webpack-dev-server/node_modules/readdirp": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack-dev-server/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/webpack-dev-server/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/supports-color": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/to-regex-range": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/y18n": { - "version": "4.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/webpack-dev-server/node_modules/yargs": { - "version": "13.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/webpack-dev-server/node_modules/yargs-parser": { - "version": "13.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-log/node_modules/ansi-colors": { - "version": "3.2.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-log/node_modules/uuid": { - "version": "3.4.0", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/webpack-merge": { - "version": "5.7.3", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "1.5.2", - "dev": true, - "license": "MIT", - "dependencies": { - "webpack-sources": "^1.3.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 2.21.0 < 5", - "webpack": ">= 1.12.11 < 6" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } - } - }, - "node_modules/webpack-subresource-integrity/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-subresource-integrity/node_modules/webpack-sources": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/cacache": { - "version": "12.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/chownr": { - "version": "1.1.4", - "dev": true, - "license": "ISC" - }, - "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "4.5.0", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/webpack/node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/find-cache-dir": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/find-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/is-extendable": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-wsl": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/json5": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/webpack/node_modules/loader-utils": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/locate-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/webpack/node_modules/make-dir": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/mkdirp": { - "version": "0.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/webpack/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webpack/node_modules/p-locate": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/pify": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/pkg-dir": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/readable-stream": { - "version": "2.3.7", - "dev": true, - "license": "MIT", - "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/webpack/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/webpack/node_modules/serialize-javascript": { - "version": "4.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/webpack/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/ssri": { - "version": "6.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/webpack/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/webpack/node_modules/tapable": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/terser": { - "version": "4.8.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "dev": true, - "license": "MIT", - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/to-regex-range": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/webpack-sources": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack/node_modules/y18n": { - "version": "4.0.1", - "dev": true, - "license": "ISC" - }, - "node_modules/webpack/node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "dev": true, - "license": "Apache-2.0", - "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", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/which": { - "version": "1.3.1", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/wide-align": { - "version": "1.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/worker-plugin": { - "version": "5.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "loader-utils": "^1.1.0" - }, - "peerDependencies": { - "webpack": ">= 4" - } - }, - "node_modules/worker-plugin/node_modules/json5": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/worker-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "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", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "dev": true, - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "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/yargs-parser": { - "version": "20.2.7", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zone.js": { - "version": "0.10.3", - "license": "MIT" - } - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.1102.6", - "dev": true, - "requires": { - "@angular-devkit/core": "11.2.6", - "rxjs": "6.6.3" - }, - "dependencies": { - "rxjs": { - "version": "6.6.3", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "@angular-devkit/build-angular": { - "version": "0.1102.6", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1102.6", - "@angular-devkit/build-optimizer": "0.1102.6", - "@angular-devkit/build-webpack": "0.1102.6", - "@angular-devkit/core": "11.2.6", - "@babel/core": "7.12.10", - "@babel/generator": "7.12.11", - "@babel/plugin-transform-async-to-generator": "7.12.1", - "@babel/plugin-transform-runtime": "7.12.10", - "@babel/preset-env": "7.12.11", - "@babel/runtime": "7.12.5", - "@babel/template": "7.12.7", - "@discoveryjs/json-ext": "0.5.2", - "@jsdevtools/coverage-istanbul-loader": "3.0.5", - "@ngtools/webpack": "11.2.6", - "ansi-colors": "4.1.1", - "autoprefixer": "10.2.4", - "babel-loader": "8.2.2", - "browserslist": "^4.9.1", - "cacache": "15.0.5", - "caniuse-lite": "^1.0.30001032", - "circular-dependency-plugin": "5.2.2", - "copy-webpack-plugin": "6.3.2", - "core-js": "3.8.3", - "critters": "0.0.7", - "css-loader": "5.0.1", - "cssnano": "4.1.10", - "file-loader": "6.2.0", - "find-cache-dir": "3.3.1", - "glob": "7.1.6", - "https-proxy-agent": "5.0.0", - "inquirer": "7.3.3", - "jest-worker": "26.6.2", - "karma-source-map-support": "1.4.0", - "less": "4.1.1", - "less-loader": "7.3.0", - "license-webpack-plugin": "2.3.11", - "loader-utils": "2.0.0", - "mini-css-extract-plugin": "1.3.5", - "minimatch": "3.0.4", - "open": "7.4.0", - "ora": "5.3.0", - "parse5-html-rewriting-stream": "6.0.1", - "pnp-webpack-plugin": "1.6.4", - "postcss": "8.2.4", - "postcss-import": "14.0.0", - "postcss-loader": "4.2.0", - "raw-loader": "4.0.2", - "regenerator-runtime": "0.13.7", - "resolve-url-loader": "3.1.2", - "rimraf": "3.0.2", - "rollup": "2.38.4", - "rxjs": "6.6.3", - "sass": "1.32.6", - "sass-loader": "10.1.1", - "semver": "7.3.4", - "source-map": "0.7.3", - "source-map-loader": "1.1.3", - "source-map-support": "0.5.19", - "speed-measure-webpack-plugin": "1.4.2", - "style-loader": "2.0.0", - "stylus": "0.54.8", - "stylus-loader": "4.3.3", - "terser": "5.5.1", - "terser-webpack-plugin": "4.2.3", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "webpack": "4.44.2", - "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.11.2", - "webpack-merge": "5.7.3", - "webpack-sources": "2.2.0", - "webpack-subresource-integrity": "1.5.2", - "worker-plugin": "5.0.0" - }, - "dependencies": { - "rxjs": { - "version": "6.6.3", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "@angular-devkit/build-optimizer": { - "version": "0.1102.6", - "dev": true, - "requires": { - "loader-utils": "2.0.0", - "source-map": "0.7.3", - "tslib": "2.1.0", - "typescript": "4.1.5", - "webpack-sources": "2.2.0" - } - }, - "@angular-devkit/build-webpack": { - "version": "0.1102.6", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1102.6", - "@angular-devkit/core": "11.2.6", - "rxjs": "6.6.3" - }, - "dependencies": { - "rxjs": { - "version": "6.6.3", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "@angular-devkit/core": { - "version": "11.2.6", - "dev": true, - "requires": { - "ajv": "6.12.6", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.6.3", - "source-map": "0.7.3" - }, - "dependencies": { - "rxjs": { - "version": "6.6.3", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "@angular-devkit/schematics": { - "version": "11.2.6", - "dev": true, - "requires": { - "@angular-devkit/core": "11.2.6", - "ora": "5.3.0", - "rxjs": "6.6.3" - }, - "dependencies": { - "rxjs": { - "version": "6.6.3", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "@angular/animations": { - "version": "11.2.7", - "requires": { - "tslib": "^2.0.0" - } - }, - "@angular/cdk": { - "version": "11.2.13", - "requires": { - "parse5": "^5.0.0", - "tslib": "^2.0.0" - }, - "dependencies": { - "parse5": { - "version": "5.1.1", - "optional": true - } - } - }, - "@angular/cli": { - "version": "11.2.6", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.1102.6", - "@angular-devkit/core": "11.2.6", - "@angular-devkit/schematics": "11.2.6", - "@schematics/angular": "11.2.6", - "@schematics/update": "0.1102.6", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "4.3.1", - "ini": "2.0.0", - "inquirer": "7.3.3", - "jsonc-parser": "3.0.0", - "npm-package-arg": "8.1.0", - "npm-pick-manifest": "6.1.0", - "open": "7.4.0", - "ora": "5.3.0", - "pacote": "11.2.4", - "resolve": "1.19.0", - "rimraf": "3.0.2", - "semver": "7.3.4", - "symbol-observable": "3.0.0", - "universal-analytics": "0.4.23", - "uuid": "8.3.2" - } - }, - "@angular/common": { - "version": "11.2.7", - "requires": { - "tslib": "^2.0.0" - } - }, - "@angular/compiler": { - "version": "11.2.7", - "requires": { - "tslib": "^2.0.0" - } - }, - "@angular/compiler-cli": { - "version": "11.2.7", - "dev": true, - "requires": { - "@babel/core": "^7.8.6", - "@babel/types": "^7.8.6", - "canonical-path": "1.0.0", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.7.2", - "fs-extra": "4.0.2", - "magic-string": "^0.25.0", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.2", - "semver": "^6.3.0", - "source-map": "^0.6.1", - "sourcemap-codec": "^1.4.8", - "tslib": "^2.0.0", - "yargs": "^16.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "@angular/core": { - "version": "11.2.7", - "requires": { - "tslib": "^2.0.0" - } - }, - "@angular/forms": { - "version": "11.2.7", - "requires": { - "tslib": "^2.0.0" - } - }, - "@angular/material": { - "version": "11.2.13", - "requires": { - "tslib": "^2.0.0" - } - }, - "@angular/platform-browser": { - "version": "11.2.7", - "requires": { - "tslib": "^2.0.0" - } - }, - "@angular/platform-browser-dynamic": { - "version": "11.2.7", - "requires": { - "tslib": "^2.0.0" - } - }, - "@angular/router": { - "version": "11.2.7", - "requires": { - "tslib": "^2.0.0" - } - }, - "@babel/code-frame": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/compat-data": { - "version": "7.13.12", - "dev": true - }, - "@babel/core": { - "version": "7.12.10", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.12.11", - "dev": true, - "requires": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.13.10", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.13.11", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-split-export-declaration": "^7.12.13" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.17", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/template": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - } - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-module-imports": { - "version": "7.13.12", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-module-transforms": { - "version": "7.13.12", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" - }, - "dependencies": { - "@babel/template": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.13.0", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.13.12", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-simple-access": { - "version": "7.13.12", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.12.17", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - }, - "dependencies": { - "@babel/template": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - } - } - }, - "@babel/helpers": { - "version": "7.13.10", - "dev": true, - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - }, - "dependencies": { - "@babel/template": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - } - } - }, - "@babel/highlight": { - "version": "7.13.10", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.13.12", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.8", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.13.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.13.12", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-split-export-declaration": "^7.12.13", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.13.8", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.13.0", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-identifier": "^7.12.11", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.12.13", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.12.10", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "semver": "^5.5.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "dev": true - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/preset-env": { - "version": "7.12.11", - "dev": true, - "requires": { - "@babel/compat-data": "^7.12.7", - "@babel/helper-compilation-targets": "^7.12.5", - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.11", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.7", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.11", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.7", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.10", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.11", - "core-js-compat": "^3.8.0", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.12.5", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.12.7", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "@babel/traverse": { - "version": "7.13.0", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/generator": { - "version": "7.13.9", - "dev": true, - "requires": { - "@babel/types": "^7.13.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "source-map": { - "version": "0.5.7", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.13.12", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.2", - "dev": true - }, - "@fortawesome/angular-fontawesome": { - "version": "0.8.2", - "requires": { - "tslib": "^2.1.0" - } - }, - "@fortawesome/fontawesome-common-types": { - "version": "0.2.35" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "1.2.35", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.35" - } - }, - "@fortawesome/free-regular-svg-icons": { - "version": "5.15.3", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.35" - } - }, - "@fortawesome/free-solid-svg-icons": { - "version": "5.15.3", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.35" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jsdevtools/coverage-istanbul-loader": { - "version": "3.0.5", - "dev": true, - "requires": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.3", - "loader-utils": "^2.0.0", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.7.0" - } - }, - "@ngtools/webpack": { - "version": "11.2.6", - "dev": true, - "requires": { - "@angular-devkit/core": "11.2.6", - "enhanced-resolve": "5.7.0", - "webpack-sources": "2.2.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.4", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "@npmcli/ci-detect": { - "version": "1.3.0", - "dev": true - }, - "@npmcli/git": { - "version": "2.0.6", - "dev": true, - "requires": { - "@npmcli/promise-spawn": "^1.1.0", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.3", - "npm-pick-manifest": "^6.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.2", - "unique-filename": "^1.1.1", - "which": "^2.0.2" - }, - "dependencies": { - "err-code": { - "version": "2.0.3", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "retry": { - "version": "0.12.0", - "dev": true - }, - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@npmcli/installed-package-contents": { - "version": "1.0.7", - "dev": true, - "requires": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@npmcli/node-gyp": { - "version": "1.0.2", - "dev": true - }, - "@npmcli/promise-spawn": { - "version": "1.3.2", - "dev": true, - "requires": { - "infer-owner": "^1.0.4" - } - }, - "@npmcli/run-script": { - "version": "1.8.4", - "dev": true, - "requires": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "infer-owner": "^1.0.4", - "node-gyp": "^7.1.0", - "read-package-json-fast": "^2.0.1" - }, - "dependencies": { - "read-package-json-fast": { - "version": "2.0.2", - "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - } - } - } - }, - "@schematics/angular": { - "version": "11.2.6", - "dev": true, - "requires": { - "@angular-devkit/core": "11.2.6", - "@angular-devkit/schematics": "11.2.6", - "jsonc-parser": "3.0.0" - } - }, - "@schematics/update": { - "version": "0.1102.6", - "dev": true, - "requires": { - "@angular-devkit/core": "11.2.6", - "@angular-devkit/schematics": "11.2.6", - "@yarnpkg/lockfile": "1.1.0", - "ini": "2.0.0", - "npm-package-arg": "^8.0.0", - "pacote": "11.2.4", - "semver": "7.3.4", - "semver-intersect": "1.4.0" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "dev": true - }, - "@types/component-emitter": { - "version": "1.2.10", - "dev": true - }, - "@types/cookie": { - "version": "0.4.0", - "dev": true - }, - "@types/cors": { - "version": "2.8.10", - "dev": true - }, - "@types/glob": { - "version": "7.1.3", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/jasmine": { - "version": "3.6.8", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.8", - "dev": true, - "requires": { - "@types/jasmine": "*" - } - }, - "@types/json-schema": { - "version": "7.0.7", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.4", - "dev": true - }, - "@types/node": { - "version": "12.20.6", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "dev": true - }, - "@types/q": { - "version": "0.0.32", - "dev": true - }, - "@types/selenium-webdriver": { - "version": "3.0.17", - "dev": true - }, - "@types/source-list-map": { - "version": "0.1.2", - "dev": true - }, - "@types/webpack-sources": { - "version": "0.1.8", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "dev": true - }, - "abab": { - "version": "2.0.5", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.2", - "dev": true - }, - "adjust-sourcemap-loader": { - "version": "3.0.0", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - } - }, - "adm-zip": { - "version": "0.4.16", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "dev": true, - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.1.4", - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "dev": true, - "requires": {} - }, - "ajv-keywords": { - "version": "3.5.2", - "dev": true, - "requires": {} - }, - "alphanum-sort": { - "version": "1.0.2", - "dev": true - }, - "ansi-colors": { - "version": "4.1.1", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html": { - "version": "0.0.7", - "dev": true - }, - "ansi-regex": { - "version": "5.0.0", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.1", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "3.0.0", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "4.1.3", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "dev": true - } - } - }, - "aria-query": { - "version": "3.0.0", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "arity-n": { - "version": "1.0.4", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "dev": true - }, - "util": { - "version": "0.10.3", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "dev": true - }, - "async": { - "version": "2.6.3", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "dev": true - }, - "atob": { - "version": "2.1.2", - "dev": true - }, - "autoprefixer": { - "version": "10.2.4", - "dev": true, - "requires": { - "browserslist": "^4.16.1", - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "fraction.js": "^4.0.13", - "normalize-range": "^0.1.2", - "postcss-value-parser": "^4.1.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "dev": true - }, - "axobject-query": { - "version": "2.0.2", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7" - } - }, - "babel-loader": { - "version": "8.2.2", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "dev": true - }, - "base": { - "version": "0.11.2", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.4", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "dev": true - }, - "base64id": { - "version": "2.0.0", - "dev": true - }, - "batch": { - "version": "0.6.1", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "5.2.2", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "dev": true - }, - "bl": { - "version": "4.1.0", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "blocking-proxy": { - "version": "1.0.1", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "bluebird": { - "version": "3.7.2", - "dev": true - }, - "bn.js": { - "version": "5.2.0", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.16.3", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - } - }, - "browserstack": { - "version": "1.6.1", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } - } - }, - "buffer": { - "version": "5.7.1", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.1", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "dev": true - }, - "bytes": { - "version": "3.1.0", - "dev": true - }, - "cacache": { - "version": "15.0.5", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "cache-base": { - "version": "1.0.1", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caller-callsite": { - "version": "2.0.0", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "dev": true - }, - "camelcase": { - "version": "6.2.0", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001204", - "dev": true - }, - "canonical-path": { - "version": "1.0.0", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "dev": true - }, - "chokidar": { - "version": "3.5.1", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "chownr": { - "version": "2.0.0", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "cipher-base": { - "version": "1.0.4", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-dependency-plugin": { - "version": "5.2.2", - "dev": true, - "requires": {} - }, - "class-utils": { - "version": "0.3.6", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.6.0", - "dev": true - }, - "cli-width": { - "version": "3.0.0", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "1.0.4", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "coa": { - "version": "2.0.2", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "dependencies": { - "@types/q": { - "version": "1.5.4", - "dev": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "dev": true - }, - "codelyzer": { - "version": "6.0.1", - "dev": true, - "requires": { - "@angular/compiler": "9.0.0", - "@angular/core": "9.0.0", - "app-root-path": "^3.0.0", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "rxjs": "^6.5.3", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2", - "tslib": "^1.10.0", - "zone.js": "~0.10.3" - }, - "dependencies": { - "@angular/compiler": { - "version": "9.0.0", - "dev": true, - "requires": {} - }, - "@angular/core": { - "version": "9.0.0", - "dev": true, - "requires": {} - }, - "source-map": { - "version": "0.5.7", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "collection-visit": { - "version": "1.0.0", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.3", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "color-string": { - "version": "1.5.5", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.2", - "dev": true - }, - "colors": { - "version": "1.4.0", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "dev": true - }, - "compose-function": { - "version": "3.0.3", - "dev": true, - "requires": { - "arity-n": "^1.0.4" - } - }, - "compressible": { - "version": "2.0.18", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "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", - "dev": true - }, - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "connect": { - "version": "3.7.0", - "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", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.1", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "dev": true - }, - "copy-anything": { - "version": "2.0.3", - "dev": true, - "requires": { - "is-what": "^3.12.0" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "dev": true - }, - "copy-webpack-plugin": { - "version": "6.3.2", - "dev": true, - "requires": { - "cacache": "^15.0.5", - "fast-glob": "^3.2.4", - "find-cache-dir": "^3.3.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.1", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "webpack-sources": { - "version": "1.4.3", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "core-js": { - "version": "3.8.3", - "dev": true - }, - "core-js-compat": { - "version": "3.9.1", - "dev": true, - "requires": { - "browserslist": "^4.16.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "dev": true - }, - "cors": { - "version": "2.8.5", - "dev": true, - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cosmiconfig": { - "version": "5.2.1", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "critters": { - "version": "0.0.7", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "css": "^3.0.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "pretty-bytes": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "dev": true - } - } - }, - "crypto-browserify": { - "version": "3.12.0", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css": { - "version": "3.0.0", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "css-color-names": { - "version": "0.0.4", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "css-loader": { - "version": "5.0.1", - "dev": true, - "requires": { - "camelcase": "^6.2.0", - "cssesc": "^3.0.0", - "icss-utils": "^5.0.0", - "loader-utils": "^2.0.0", - "postcss": "^8.1.4", - "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.1.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "css-parse": { - "version": "2.0.0", - "dev": true, - "requires": { - "css": "^2.0.0" - }, - "dependencies": { - "css": { - "version": "2.2.4", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } - } - }, - "css-select": { - "version": "2.1.0", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.3", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "css-what": { - "version": "3.4.2", - "dev": true - }, - "cssauron": { - "version": "1.4.0", - "dev": true, - "requires": { - "through": "X.X.X" - } - }, - "cssesc": { - "version": "3.0.0", - "dev": true - }, - "cssnano": { - "version": "4.1.10", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "dev": true - }, - "csso": { - "version": "4.2.0", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.2", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "custom-event": { - "version": "1.0.1", - "dev": true - }, - "cyclist": { - "version": "1.0.1", - "dev": true - }, - "d": { - "version": "1.0.1", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "damerau-levenshtein": { - "version": "1.0.6", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-format": { - "version": "3.0.0", - "dev": true - }, - "debug": { - "version": "4.3.1", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "default-gateway": { - "version": "4.2.0", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "defaults": { - "version": "1.0.3", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "del": { - "version": "2.2.2", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "array-union": { - "version": "1.0.2", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "globby": { - "version": "5.0.0", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "dev": true - }, - "depd": { - "version": "1.1.2", - "dev": true - }, - "dependency-graph": { - "version": "0.7.2", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "dev": true - }, - "detect-node": { - "version": "2.0.5", - "dev": true - }, - "di": { - "version": "0.0.1", - "dev": true - }, - "diff": { - "version": "4.0.2", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "dom-serialize": { - "version": "2.2.1", - "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "dom-serializer": { - "version": "0.2.2", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.1.0", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "dev": true - }, - "domutils": { - "version": "1.7.0", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.3.0", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexify": { - "version": "3.7.1", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.700", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "dev": true - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "4.1.1", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" - } - }, - "engine.io-parser": { - "version": "4.0.2", - "dev": true, - "requires": { - "base64-arraybuffer": "0.1.4" - } - }, - "enhanced-resolve": { - "version": "5.7.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "ent": { - "version": "2.2.0", - "dev": true - }, - "entities": { - "version": "2.2.0", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "dev": true - }, - "err-code": { - "version": "1.1.2", - "dev": true - }, - "errno": { - "version": "0.1.8", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.18.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "es6-symbol": { - "version": "3.1.3", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "dev": true - }, - "etag": { - "version": "1.8.1", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "dev": true - }, - "events": { - "version": "3.3.0", - "dev": true - }, - "eventsource": { - "version": "1.1.0", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "dev": true - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "dev": true - }, - "cookie": { - "version": "0.4.0", - "dev": true - }, - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "ext": { - "version": "1.4.0", - "dev": true, - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.5.0", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "external-editor": { - "version": "3.1.0", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "dev": true - }, - "fast-glob": { - "version": "3.2.5", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true - }, - "fastparse": { - "version": "1.1.2", - "dev": true - }, - "fastq": { - "version": "1.11.0", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.3", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "dev": true - }, - "figures": { - "version": "3.2.0", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "6.2.0", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "fill-range": { - "version": "7.0.1", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "filter-obj": { - "version": "1.1.0", - "dev": true - }, - "finalhandler": { - "version": "1.1.2", - "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", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.1", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flatted": { - "version": "2.0.2", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "follow-redirects": { - "version": "1.13.3", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "dev": true - }, - "fraction.js": { - "version": "4.0.13", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "dev": true - }, - "from2": { - "version": "2.3.0", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs-extra": { - "version": "4.0.2", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0", - "dev": true - }, - "globby": { - "version": "11.0.3", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "dev": true - }, - "handle-thing": { - "version": "2.0.1", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "dev": true - } - } - }, - "has-bigints": { - "version": "1.0.1", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.7", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hex-color-regex": { - "version": "1.1.0", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "3.0.8", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "hpack.js": { - "version": "2.1.6", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "hsl-regex": { - "version": "1.0.0", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "dev": true - }, - "html-entities": { - "version": "1.4.0", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.5.3", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "dev": true - }, - "https-proxy-agent": { - "version": "5.0.0", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "humanize-ms": { - "version": "1.2.1", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "5.1.0", - "dev": true, - "requires": {} - }, - "ieee754": { - "version": "1.2.1", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "dev": true - }, - "ignore-walk": { - "version": "3.0.3", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "image-size": { - "version": "0.5.5", - "dev": true, - "optional": true - }, - "immediate": { - "version": "3.0.6", - "dev": true - }, - "import-fresh": { - "version": "2.0.0", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-local": { - "version": "2.0.0", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "dev": true - }, - "ini": { - "version": "2.0.0", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "rxjs": { - "version": "6.6.6", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "internal-ip": { - "version": "4.3.0", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "ip": { - "version": "1.1.5", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arguments": { - "version": "1.1.0", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "dev": true - }, - "is-bigint": { - "version": "1.0.1", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.0", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "dev": true - }, - "is-color-stop": { - "version": "1.1.0", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.2.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.2", - "dev": true - }, - "is-descriptor": { - "version": "1.0.2", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-directory": { - "version": "0.3.1", - "dev": true - }, - "is-docker": { - "version": "2.1.1", - "dev": true - }, - "is-extendable": { - "version": "1.0.1", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-extglob": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-interactive": { - "version": "1.0.0", - "dev": true - }, - "is-lambda": { - "version": "1.0.1", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "dev": true - }, - "is-number-object": { - "version": "1.0.4", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "2.1.0", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "dev": true - }, - "is-string": { - "version": "1.0.5", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "dev": true - }, - "is-what": { - "version": "3.14.1", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.6", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "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", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jasmine": { - "version": "2.8.0", - "dev": true, - "requires": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "dependencies": { - "jasmine-core": { - "version": "2.8.0", - "dev": true - } - } - }, - "jasmine-core": { - "version": "3.7.1", - "dev": true - }, - "jasmine-spec-reporter": { - "version": "6.0.0", - "dev": true, - "requires": { - "colors": "1.4.0" - } - }, - "jasminewd2": { - "version": "2.2.0", - "dev": true - }, - "jest-worker": { - "version": "26.6.2", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "dev": true - }, - "json3": { - "version": "3.3.3", - "dev": true - }, - "json5": { - "version": "2.2.0", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonc-parser": { - "version": "3.0.0", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonparse": { - "version": "1.3.1", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.6.0", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "karma": { - "version": "6.3.1", - "dev": true, - "requires": { - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.4.2", - "colors": "^1.4.0", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", - "minimatch": "^3.0.4", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^3.1.0", - "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "^0.7.23", - "yargs": "^16.1.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } - } - }, - "karma-chrome-launcher": { - "version": "3.1.0", - "dev": true, - "requires": { - "which": "^1.2.1" - } - }, - "karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - } - }, - "karma-jasmine": { - "version": "4.0.1", - "dev": true, - "requires": { - "jasmine-core": "^3.6.0" - } - }, - "karma-jasmine-html-reporter": { - "version": "1.5.4", - "dev": true, - "requires": {} - }, - "karma-source-map-support": { - "version": "1.4.0", - "dev": true, - "requires": { - "source-map-support": "^0.5.5" - } - }, - "killable": { - "version": "1.0.1", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "dev": true - }, - "klona": { - "version": "2.0.4", - "dev": true - }, - "less": { - "version": "4.1.1", - "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": "^2.5.2", - "parse-node-version": "^1.0.1", - "source-map": "~0.6.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "dev": true, - "optional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mime": { - "version": "1.6.0", - "dev": true, - "optional": true - }, - "pify": { - "version": "4.0.1", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "dev": true, - "optional": true - }, - "source-map": { - "version": "0.6.1", - "dev": true, - "optional": true - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "less-loader": { - "version": "7.3.0", - "dev": true, - "requires": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "license-webpack-plugin": { - "version": "2.3.11", - "dev": true, - "requires": { - "@types/webpack-sources": "^0.1.5", - "webpack-sources": "^1.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - }, - "webpack-sources": { - "version": "1.4.3", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "lie": { - "version": "3.3.0", - "dev": true, - "requires": { - "immediate": "~3.0.5" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "dev": true - }, - "loader-runner": { - "version": "2.4.0", - "dev": true - }, - "loader-utils": { - "version": "2.0.0", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "log4js": { - "version": "6.3.0", - "dev": true, - "requires": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - } - }, - "loglevel": { - "version": "1.7.1", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-string": { - "version": "0.25.7", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "make-dir": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "dev": true - }, - "make-fetch-happen": { - "version": "8.0.14", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - }, - "dependencies": { - "err-code": { - "version": "2.0.3", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "retry": { - "version": "0.12.0", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "dev": true - }, - "merge-source-map": { - "version": "1.1.0", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "dev": true - }, - "methods": { - "version": "1.1.2", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "miller-rabin": { - "version": "4.0.1", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "dev": true - } - } - }, - "mime": { - "version": "2.5.2", - "dev": true - }, - "mime-db": { - "version": "1.46.0", - "dev": true - }, - "mime-types": { - "version": "2.1.29", - "dev": true, - "requires": { - "mime-db": "1.46.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "1.3.5", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "webpack-sources": { - "version": "1.4.3", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "dev": true - }, - "minipass": { - "version": "3.1.3", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.3.3", - "dev": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-json-stream": { - "version": "1.0.1", - "dev": true, - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "dev": true - }, - "move-concurrently": { - "version": "1.0.1", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ms": { - "version": "2.1.2", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "dev": true - }, - "nanoid": { - "version": "3.1.22", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "needle": { - "version": "2.6.0", - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "negotiator": { - "version": "0.6.2", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "dev": true - }, - "node-forge": { - "version": "0.10.0", - "dev": true - }, - "node-gyp": { - "version": "7.1.2", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-libs-browser": { - "version": "2.2.1", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "punycode": { - "version": "1.4.1", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "node-releases": { - "version": "1.1.71", - "dev": true - }, - "nopt": { - "version": "5.0.0", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "dev": true - }, - "normalize-url": { - "version": "3.3.0", - "dev": true - }, - "npm-bundled": { - "version": "1.1.1", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-install-checks": { - "version": "4.0.0", - "dev": true, - "requires": { - "semver": "^7.1.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "dev": true - }, - "npm-package-arg": { - "version": "8.1.0", - "dev": true, - "requires": { - "hosted-git-info": "^3.0.6", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-packlist": { - "version": "2.1.5", - "dev": true, - "requires": { - "glob": "^7.1.6", - "ignore-walk": "^3.0.3", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "6.1.0", - "dev": true, - "requires": { - "npm-install-checks": "^4.0.0", - "npm-package-arg": "^8.0.0", - "semver": "^7.0.0" - } - }, - "npm-registry-fetch": { - "version": "9.0.0", - "dev": true, - "requires": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.9.0", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - } - }, - "object.pick": { - "version": "1.3.0", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.3", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "dev": true - }, - "once": { - "version": "1.4.0", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.0", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "opn": { - "version": "5.5.0", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "dev": true - } - } - }, - "ora": { - "version": "5.3.0", - "dev": true, - "requires": { - "bl": "^4.0.3", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "original": { - "version": "1.0.2", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "3.0.1", - "dev": true, - "requires": { - "retry": "^0.12.0" - }, - "dependencies": { - "retry": { - "version": "0.12.0", - "dev": true - } - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "pacote": { - "version": "11.2.4", - "dev": true, - "requires": { - "@npmcli/git": "^2.0.1", - "@npmcli/installed-package-contents": "^1.0.5", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^1.3.0", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.4", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^9.0.0", - "promise-retry": "^1.1.1", - "read-package-json-fast": "^1.1.3", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.1.0" - } - }, - "pako": { - "version": "1.0.11", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "parent-module": { - "version": "1.0.1", - "dev": true, - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "dev": true - } - } - }, - "parse-asn1": { - "version": "5.1.6", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-node-version": { - "version": "1.0.1", - "dev": true - }, - "parse5": { - "version": "6.0.1", - "dev": true - }, - "parse5-html-rewriting-stream": { - "version": "6.0.1", - "dev": true, - "requires": { - "parse5": "^6.0.1", - "parse5-sax-parser": "^6.0.1" - } - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "dev": true, - "requires": { - "parse5": "^6.0.1" - } - }, - "parse5-sax-parser": { - "version": "6.0.1", - "dev": true, - "requires": { - "parse5": "^6.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "dev": true - }, - "pbkdf2": { - "version": "3.1.1", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "dev": true - }, - "pify": { - "version": "2.3.0", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pnp-webpack-plugin": { - "version": "1.6.4", - "dev": true, - "requires": { - "ts-pnp": "^1.1.6" - } - }, - "portfinder": { - "version": "1.0.28", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "mkdirp": { - "version": "0.5.5", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "dev": true - }, - "postcss": { - "version": "8.2.4", - "dev": true, - "requires": { - "colorette": "^1.2.1", - "nanoid": "^3.1.20", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "postcss-calc": { - "version": "7.0.5", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "4.0.3", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-import": { - "version": "14.0.0", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-loader": { - "version": "4.2.0", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.4" - }, - "dependencies": { - "cosmiconfig": { - "version": "7.0.0", - "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" - } - }, - "import-fresh": { - "version": "3.3.0", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "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" - } - }, - "resolve-from": { - "version": "4.0.0", - "dev": true - }, - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "dev": true, - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "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", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "6.0.4", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "dev": true - }, - "prepend-http": { - "version": "3.0.1", - "dev": true - }, - "pretty-bytes": { - "version": "5.6.0", - "dev": true - }, - "process": { - "version": "0.11.10", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "dev": true - }, - "promise-retry": { - "version": "1.1.1", - "dev": true, - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - } - }, - "protractor": { - "version": "7.0.0", - "dev": true, - "requires": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cliui": { - "version": "6.0.0", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "strip-ansi": { - "version": "3.0.1", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "strip-ansi": { - "version": "6.0.0", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "y18n": { - "version": "4.0.1", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "proxy-addr": { - "version": "2.0.6", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "dev": true - }, - "psl": { - "version": "1.8.0", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "dev": true - }, - "q": { - "version": "1.4.1", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "dev": true - }, - "qs": { - "version": "6.7.0", - "dev": true - }, - "query-string": { - "version": "6.14.1", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "raw-loader": { - "version": "4.0.2", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "read-cache": { - "version": "1.0.0", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "read-package-json-fast": { - "version": "1.2.2", - "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.5.0", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "dev": true - }, - "regenerate": { - "version": "1.4.2", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regex-parser": { - "version": "2.2.11", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpu-core": { - "version": "4.7.1", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "dev": true - }, - "regjsparser": { - "version": "0.6.9", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "dev": true - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "dev": true - }, - "request": { - "version": "2.88.2", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "dev": true - }, - "resolve": { - "version": "1.19.0", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "dev": true - }, - "resolve-url-loader": { - "version": "3.1.2", - "dev": true, - "requires": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.21", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "dev": true - }, - "json5": { - "version": "1.0.1", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "postcss": { - "version": "7.0.21", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "restore-cursor": { - "version": "3.1.0", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "dev": true - }, - "retry": { - "version": "0.10.1", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "dev": true - }, - "rework": { - "version": "1.0.1", - "dev": true, - "requires": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5", - "dev": true - }, - "css": { - "version": "2.2.4", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } - } - }, - "rework-visit": { - "version": "1.0.0", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rollup": { - "version": "2.38.4", - "dev": true, - "requires": { - "fsevents": "~2.3.1" - } - }, - "run-async": { - "version": "2.4.1", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "run-queue": { - "version": "1.0.3", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "rxjs": { - "version": "6.5.5", - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1" - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "dev": true - }, - "sass": { - "version": "1.32.6", - "dev": true, - "requires": { - "chokidar": ">=2.0.0 <4.0.0" - } - }, - "sass-loader": { - "version": "10.1.1", - "dev": true, - "requires": { - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "semver": "^7.3.2" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "saucelabs": { - "version": "1.5.0", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - } - } - }, - "sax": { - "version": "1.2.4", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "dev": true - }, - "selenium-webdriver": { - "version": "3.6.0", - "dev": true, - "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.0.30", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } - } - }, - "selfsigned": { - "version": "1.10.8", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "7.3.4", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-dsl": { - "version": "1.0.1", - "dev": true, - "requires": { - "semver": "^5.3.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "dev": true - } - } - }, - "semver-intersect": { - "version": "1.4.0", - "dev": true, - "requires": { - "semver": "^5.0.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "dev": true - } - } - }, - "send": { - "version": "0.17.1", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "dev": true - }, - "ms": { - "version": "2.1.1", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "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", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "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", - "dev": true - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.1", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true - } - } - }, - "setimmediate": { - "version": "1.0.5", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "dev": true - } - } - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "smart-buffer": { - "version": "4.1.0", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "dev": true - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socket.io": { - "version": "3.1.2", - "dev": true, - "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" - } - }, - "socket.io-adapter": { - "version": "2.1.0", - "dev": true - }, - "socket.io-parser": { - "version": "4.0.4", - "dev": true, - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "sockjs": { - "version": "0.3.21", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "dev": true - } - } - }, - "sockjs-client": { - "version": "1.5.1", - "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "socks": { - "version": "2.6.0", - "dev": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.0", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" - } - }, - "sort-keys": { - "version": "4.2.0", - "dev": true, - "requires": { - "is-plain-obj": "^2.0.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "dev": true - }, - "source-map-loader": { - "version": "1.1.3", - "dev": true, - "requires": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.2", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.6.1", - "whatwg-mimetype": "^2.3.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "source-map-resolve": { - "version": "0.6.0", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.1", - "dev": true - }, - "sourcemap-codec": { - "version": "1.4.8", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "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", - "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" - } - }, - "speed-measure-webpack-plugin": { - "version": "1.4.2", - "dev": true, - "requires": { - "chalk": "^4.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "split-on-first": { - "version": "1.1.0", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.1.2", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "8.0.1", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-each": { - "version": "1.2.3", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-shift": { - "version": "1.0.1", - "dev": true - }, - "streamroller": { - "version": "2.2.4", - "dev": true, - "requires": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "date-format": { - "version": "2.1.0", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "strict-uri-encode": { - "version": "2.0.0", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "dev": true - } - } - }, - "string-width": { - "version": "4.2.2", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "6.0.0", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "dev": true - }, - "style-loader": { - "version": "2.0.0", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "stylehacks": { - "version": "4.0.3", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss": { - "version": "7.0.35", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "stylus": { - "version": "0.54.8", - "dev": true, - "requires": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "dev": true - }, - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "stylus-loader": { - "version": "4.3.3", - "dev": true, - "requires": { - "fast-glob": "^3.2.4", - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "svgo": { - "version": "1.3.2", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "symbol-observable": { - "version": "3.0.0", - "dev": true - }, - "tapable": { - "version": "2.2.0", - "dev": true - }, - "tar": { - "version": "6.1.0", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "terser": { - "version": "5.5.1", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - } - }, - "terser-webpack-plugin": { - "version": "4.2.3", - "dev": true, - "requires": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "webpack-sources": { - "version": "1.4.3", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "dev": true - }, - "through": { - "version": "2.3.8", - "dev": true - }, - "through2": { - "version": "2.0.5", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "thunky": { - "version": "1.1.0", - "dev": true - }, - "timers-browserify": { - "version": "2.0.12", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tree-kill": { - "version": "1.2.2", - "dev": true - }, - "ts-node": { - "version": "8.3.0", - "dev": true, - "requires": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" - } - }, - "ts-pnp": { - "version": "1.2.0", - "dev": true - }, - "tslib": { - "version": "2.1.0" - }, - "tslint": { - "version": "6.1.3", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "5.7.1", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "tsutils": { - "version": "2.29.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "dev": true - } - } - }, - "tty-browserify": { - "version": "0.0.0", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "dev": true - }, - "type": { - "version": "1.2.0", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "dev": true - }, - "typescript": { - "version": "4.1.5", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.25", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.1", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "dev": true - } - } - }, - "uniq": { - "version": "1.0.1", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universal-analytics": { - "version": "0.4.23", - "dev": true, - "requires": { - "debug": "^4.1.1", - "request": "^2.88.2", - "uuid": "^3.0.0" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "dev": true - } - } - }, - "universalify": { - "version": "0.1.2", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "dev": true - }, - "url": { - "version": "0.11.0", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "dev": true - } - } - }, - "url-parse": { - "version": "1.5.1", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "dev": true - }, - "util": { - "version": "0.11.1", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "dev": true - }, - "util.promisify": { - "version": "1.0.1", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utils-merge": { - "version": "1.0.1", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "dev": true - }, - "validate-npm-package-name": { - "version": "3.0.0", - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "vary": { - "version": "1.1.2", - "dev": true - }, - "vendors": { - "version": "1.0.4", - "dev": true - }, - "verror": { - "version": "1.10.0", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "dev": true - }, - "watchpack": { - "version": "1.7.5", - "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true, - "optional": true - }, - "is-number": { - "version": "3.0.0", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readable-stream": { - "version": "2.3.7", - "dev": true, - "optional": 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" - } - }, - "readdirp": { - "version": "2.2.1", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "webdriver-js-extender": { - "version": "2.1.0", - "dev": true, - "requires": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - } - }, - "webdriver-manager": { - "version": "12.1.8", - "dev": true, - "requires": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "ini": { - "version": "1.3.8", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "dev": true - } - } - }, - "webpack": { - "version": "4.44.2", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cacache": { - "version": "12.0.4", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "chownr": { - "version": "1.1.4", - "dev": true - }, - "enhanced-resolve": { - "version": "4.5.0", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-wsl": { - "version": "1.1.0", - "dev": true - }, - "json5": { - "version": "1.0.1", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "3.0.0", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "micromatch": { - "version": "3.1.10", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mkdirp": { - "version": "0.5.5", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "dev": true - }, - "pify": { - "version": "4.0.1", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "dev": true - }, - "serialize-javascript": { - "version": "4.0.0", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "ssri": { - "version": "6.0.1", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "tapable": { - "version": "1.1.3", - "dev": true - }, - "terser": { - "version": "4.8.0", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "webpack-sources": { - "version": "1.4.3", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "y18n": { - "version": "4.0.1", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "webpack-dev-server": { - "version": "3.11.2", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "array-union": { - "version": "1.0.2", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "binary-extensions": { - "version": "1.13.1", - "dev": true - }, - "braces": { - "version": "2.3.2", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "cliui": { - "version": "5.0.0", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "del": { - "version": "4.1.1", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "dev": true - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "globby": { - "version": "6.1.0", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-path-cwd": { - "version": "2.2.0", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "locate-path": { - "version": "3.0.0", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "2.1.0", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "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" - } - }, - "readdirp": { - "version": "2.2.1", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { - "version": "3.1.0", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ws": { - "version": "6.2.1", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "y18n": { - "version": "4.0.1", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "dev": true - } - } - }, - "webpack-merge": { - "version": "5.7.3", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "2.2.0", - "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "webpack-subresource-integrity": { - "version": "1.5.2", - "dev": true, - "requires": { - "webpack-sources": "^1.3.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - }, - "webpack-sources": { - "version": "1.4.3", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "websocket-driver": { - "version": "0.7.4", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "dev": true - }, - "whatwg-mimetype": { - "version": "2.3.0", - "dev": true - }, - "which": { - "version": "1.3.1", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "dev": true - }, - "wide-align": { - "version": "1.1.3", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "wildcard": { - "version": "2.0.0", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "worker-plugin": { - "version": "5.0.0", - "dev": true, - "requires": { - "loader-utils": "^1.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "wrap-ansi": { - "version": "7.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "dev": true - }, - "ws": { - "version": "7.4.4", - "dev": true, - "requires": {} - }, - "xml2js": { - "version": "0.4.23", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "dev": true - }, - "y18n": { - "version": "5.0.5", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "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.7", - "dev": true - }, - "yn": { - "version": "3.1.1", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - }, - "zone.js": { - "version": "0.10.3" - } - } -} diff --git a/Code/skyrim_ui/package.json b/Code/skyrim_ui/package.json index 63cc279a8..cc697ea26 100644 --- a/Code/skyrim_ui/package.json +++ b/Code/skyrim_ui/package.json @@ -5,8 +5,8 @@ "ng": "ng", "start": "ng serve --host 0.0.0.0 --disable-host-check --configuration=browser", "build": "ng build", - "deploy:nightly": "ng build --prod --output-hashing none --configuration=nightly --base-href ./ --resources-output-path ./assets/", - "deploy:production": "ng build --prod --output-hashing none --configuration=production --base-href ./ --resources-output-path ./assets/", + "deploy:nightly": "ng build --output-hashing none --configuration=nightly --base-href ./ --resources-output-path ./assets/", + "deploy:production": "ng build --output-hashing none --configuration=production --base-href ./ --resources-output-path ./assets/", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" @@ -19,7 +19,6 @@ "@angular/compiler": "^14.0.5", "@angular/core": "^14.0.5", "@angular/forms": "^14.0.5", - "@angular/material": "^14.0.4", "@angular/platform-browser": "^14.0.5", "@angular/platform-browser-dynamic": "^14.0.5", "@angular/router": "^14.0.5", @@ -27,6 +26,8 @@ "@fortawesome/fontawesome-svg-core": "^6.1.1", "@fortawesome/free-regular-svg-icons": "^6.1.1", "@fortawesome/free-solid-svg-icons": "^6.1.1", + "@ngneat/loadoff": "^2.1.0", + "@ngneat/reactive-forms": "^5.0.0", "rxjs": "~7.5.5", "tslib": "^2.4.0", "zone.js": "~0.11.6" diff --git a/Code/skyrim_ui/pnpm-lock.yaml b/Code/skyrim_ui/pnpm-lock.yaml index c6d6573c8..07152bbdf 100644 --- a/Code/skyrim_ui/pnpm-lock.yaml +++ b/Code/skyrim_ui/pnpm-lock.yaml @@ -16,7 +16,6 @@ specifiers: '@angular/compiler-cli': ^14.0.5 '@angular/core': ^14.0.5 '@angular/forms': ^14.0.5 - '@angular/material': ^14.0.4 '@angular/platform-browser': ^14.0.5 '@angular/platform-browser-dynamic': ^14.0.5 '@angular/router': ^14.0.5 @@ -24,6 +23,8 @@ specifiers: '@fortawesome/fontawesome-svg-core': ^6.1.1 '@fortawesome/free-regular-svg-icons': ^6.1.1 '@fortawesome/free-solid-svg-icons': ^6.1.1 + '@ngneat/loadoff': ^2.1.0 + '@ngneat/reactive-forms': ^5.0.0 '@types/jasmine': ^3.6.4 '@types/jasminewd2': ^2.0.10 '@types/node': 16.x.x @@ -54,7 +55,6 @@ dependencies: '@angular/compiler': 14.0.5_@angular+core@14.0.5 '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 '@angular/forms': 14.0.5_wyhyq3insgmltow5sqaabp6jgu - '@angular/material': 14.0.4_zuqzc5vo5mwbumqhimhjyhwdfa '@angular/platform-browser': 14.0.5_iw6whprzu3c6qqw5ps72nnedmu '@angular/platform-browser-dynamic': 14.0.5_zivgksezxddppse4yo6zg2q33u '@angular/router': 14.0.5_wyhyq3insgmltow5sqaabp6jgu @@ -62,6 +62,8 @@ dependencies: '@fortawesome/fontawesome-svg-core': 6.1.1 '@fortawesome/free-regular-svg-icons': 6.1.1 '@fortawesome/free-solid-svg-icons': 6.1.1 + '@ngneat/loadoff': 2.1.0 + '@ngneat/reactive-forms': 5.0.0_@angular+forms@14.0.5 rxjs: 7.5.5 tslib: 2.4.0 zone.js: 0.11.6 @@ -458,27 +460,6 @@ packages: tslib: 2.4.0 dev: false - /@angular/material/14.0.4_zuqzc5vo5mwbumqhimhjyhwdfa: - resolution: { integrity: sha512-Ysz6oPbpLH7CvRR6oxQwpUImSbFqxL4+eiH0LPc7vkaOSrvGdZ/7cWhAfT6hVnw3bEY+eq5qBSMgyVUB44z4eg== } - peerDependencies: - '@angular/animations': ^14.0.0 || ^15.0.0 - '@angular/cdk': 14.0.4 - '@angular/common': ^14.0.0 || ^15.0.0 - '@angular/core': ^14.0.0 || ^15.0.0 - '@angular/forms': ^14.0.0 || ^15.0.0 - '@angular/platform-browser': ^14.0.0 || ^15.0.0 - rxjs: ^6.5.3 || ^7.4.0 - dependencies: - '@angular/animations': 14.0.5_@angular+core@14.0.5 - '@angular/cdk': 14.0.4_up4ahvy7h7pludtfht5f75kszu - '@angular/common': 14.0.5_dzujbj7drp6g2oxeynnik3virq - '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 - '@angular/forms': 14.0.5_wyhyq3insgmltow5sqaabp6jgu - '@angular/platform-browser': 14.0.5_iw6whprzu3c6qqw5ps72nnedmu - rxjs: 7.5.5 - tslib: 2.4.0 - dev: false - /@angular/platform-browser-dynamic/14.0.5_zivgksezxddppse4yo6zg2q33u: resolution: { integrity: sha512-VVka6K5jFd6DkFOq+ddMUj1QuI5+As5SbDLkJW0N452cYXA+CE5Y265DvbNbdXXl5wSffGGrizlKrI8jp9uLEQ== } engines: { node: ^14.15.0 || >=16.10.0 } @@ -2001,6 +1982,21 @@ packages: resolution: { integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== } dev: true + /@ngneat/loadoff/2.1.0: + resolution: { integrity: sha512-N2Kfu7LaDu5t94nSNJU1T6/Uq4k2EAm5I0GHmglFR4dZRQAFGg1WNLT/t6zivcZiqN5wtNBZJS+FLvYKRuZGeA== } + dependencies: + tslib: 2.4.0 + dev: false + + /@ngneat/reactive-forms/5.0.0_@angular+forms@14.0.5: + resolution: { integrity: sha512-1duAEvwC0gS8NVICuDOpGjyahAWoMgD084b5OfmJT7pRqlgD2EhkeloFmGAUjR+wNbtXK32t52bUjK6oE3HMbg== } + peerDependencies: + '@angular/forms': '>= 14.0.0' + dependencies: + '@angular/forms': 14.0.5_wyhyq3insgmltow5sqaabp6jgu + tslib: 2.4.0 + dev: false + /@ngtools/webpack/14.0.5_ptzhxof3x65ohorlrlcmzjacqi: resolution: { integrity: sha512-fOHtOYfuQhMTcqOfASuH5z8LwEmIG8323yPTP528w9RM9bUr3JaoK1RNcVuLKSvAGRTvTfeykK3/Eri/YW1DvQ== } engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } diff --git a/Code/skyrim_ui/src/app/app.module.ts b/Code/skyrim_ui/src/app/app.module.ts index d0c2cb761..301a5b477 100644 --- a/Code/skyrim_ui/src/app/app.module.ts +++ b/Code/skyrim_ui/src/app/app.module.ts @@ -1,16 +1,16 @@ +import { ScrollingModule } from '@angular/cdk/scrolling'; import { HttpClientModule } from '@angular/common/http'; import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { MatTabsModule } from '@angular/material/tabs'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; +import { environment } from '../environments/environment'; import { ChatComponent } from './components/chat/chat.component'; import { ConnectComponent } from './components/connect/connect.component'; import { DebugComponent } from './components/debug/debug.component'; import { DisconnectComponent } from './components/disconnect/disconnect.component'; import { ErrorComponent } from './components/error/error.component'; - import { GroupComponent } from './components/group/group.component'; import { LoadingComponent } from './components/loading/loading.component'; import { NotificationPopupComponent } from './components/notification-popup/notification-popup.component'; @@ -20,21 +20,17 @@ import { PartyMenuComponent } from './components/party-menu/party-menu.component import { PlayerListComponent } from './components/player-list/player-list.component'; import { PlayerManagerComponent } from './components/player-manager/player-manager.component'; import { PopupComponent } from './components/popup/popup.component'; - import { RootComponent } from './components/root/root.component'; import { ServerListComponent } from './components/server-list/server-list.component'; import { SettingsComponent } from './components/settings/settings.component'; import { ToggleComponent } from './components/toggle/toggle.component'; import { WindowComponent } from './components/window/window.component'; import { HealthDirective } from './directives/health.directive'; - import { PopupButtonsDirective } from './directives/popup-buttons.directive'; import { AssetService } from './services/asset.service'; - import { ClientService } from './services/client.service'; import { ErrorService } from './services/error.service'; import { GroupService } from './services/group.service'; -import { MockClientService } from './services/mock-client.service'; import { PlayerListService } from './services/player-list.service'; import { SettingService } from './services/setting.service'; import { SoundService } from './services/sound.service'; @@ -73,11 +69,10 @@ import { StoreService } from './services/store.service'; HttpClientModule, ReactiveFormsModule, FontAwesomeModule, - MatTabsModule, + ScrollingModule, ], providers: [ ClientService, - MockClientService, AssetService, SoundService, ErrorService, @@ -85,6 +80,8 @@ import { StoreService } from './services/store.service'; PlayerListService, StoreService, SettingService, + + ...environment.providers, ], bootstrap: [RootComponent], }) diff --git a/Code/skyrim_ui/src/app/components/chat/chat.component.ts b/Code/skyrim_ui/src/app/components/chat/chat.component.ts index 8680811fb..daac783f6 100644 --- a/Code/skyrim_ui/src/app/components/chat/chat.component.ts +++ b/Code/skyrim_ui/src/app/components/chat/chat.component.ts @@ -1,13 +1,10 @@ -import { - Component, ViewEncapsulation, ViewChild, ElementRef, - AfterViewChecked, ViewChildren, QueryList, OnDestroy -} from '@angular/core'; - -import { Subscription } from 'rxjs'; - -import { ClientService, Message } from '../../services/client.service'; -import { SoundService, Sound } from '../../services/sound.service'; +import { AfterViewChecked, Component, ElementRef, QueryList, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core'; +import { takeUntil } from 'rxjs'; import { environment } from '../../../environments/environment'; +import { DestroyService } from '../../services/asset/destroy.service'; +import { ClientService, Message } from '../../services/client.service'; +import { Sound, SoundService } from '../../services/sound.service'; + interface ChatMessage extends Message { date: number; @@ -17,60 +14,73 @@ interface ChatMessage extends Message { @Component({ selector: 'app-chat', templateUrl: './chat.component.html', - styleUrls: [ './chat.component.scss' ], - encapsulation: ViewEncapsulation.None + styleUrls: ['./chat.component.scss'], + encapsulation: ViewEncapsulation.None, + providers: [DestroyService], }) -export class ChatComponent implements OnDestroy, AfterViewChecked { +export class ChatComponent implements AfterViewChecked { public padding = 0; public message = ''; public messages = [] as ChatMessage[]; - public constructor( - private client: ClientService, - private sound: SoundService - ) { - this.messageSubscription = client.messageReception.subscribe(message => { - this.messages.push({ ...message, date: Date.now(), odd: this.odd }); + private odd = false; + private autoScroll = true; + private newMessage = false; - if (this.messages.length > 100) { - if (this.entryRefQuery && this.entryRefQuery.first) { - const entryElem = this.entryRefQuery.first.nativeElement; + private scrollBack = 0; - this.messages.splice(0, this.messages.length - 100); - this.scrollBack = entryElem.getBoundingClientRect().height; - } - else { - // We still delete the first message - this.messages.shift(); - } - } + private get maxScroll(): number { + return this.logRef.nativeElement.scrollHeight - this.logRef.nativeElement.clientHeight; + } + + @ViewChild('input') private inputRef!: ElementRef; + @ViewChildren('entry') private entryRefQuery!: QueryList; + @ViewChild('log') private logRef!: ElementRef; - this.odd = !this.odd; - this.newMessage = true; + public constructor( + private readonly destroy$: DestroyService, + private readonly client: ClientService, + private readonly sound: SoundService, + ) { + client.messageReception + .pipe(takeUntil(this.destroy$)) + .subscribe(message => { + this.messages.push({ ...message, date: Date.now(), odd: this.odd }); + + if (this.messages.length > 100) { + if (this.entryRefQuery && this.entryRefQuery.first) { + const entryElem = this.entryRefQuery.first.nativeElement; + + this.messages.splice(0, this.messages.length - 100); + this.scrollBack = entryElem.getBoundingClientRect().height; + } else { + // We still delete the first message + this.messages.shift(); + } + } - this.sound.play(Sound.Message); - }); + this.odd = !this.odd; + this.newMessage = true; - this.activationSubscription = client.activationStateChange.subscribe(state => { - if (!state && this.inputRef) { - this.inputRef.nativeElement.blur(); - this.message = ''; - } - }); - } + this.sound.play(Sound.Message); + }); - public ngOnDestroy(): void { - this.messageSubscription.unsubscribe(); - this.activationSubscription.unsubscribe(); + client.activationStateChange + .pipe(takeUntil(this.destroy$)) + .subscribe(state => { + if (!state && this.inputRef) { + this.inputRef.nativeElement.blur(); + this.message = ''; + } + }); } public ngAfterViewChecked(): void { if (this.newMessage) { if (this.autoScroll) { this.logScroll(); - } - else if (this.logRef.nativeElement.scrollTop !== this.maxScroll) { + } else if (this.logRef.nativeElement.scrollTop !== this.maxScroll) { this.scrollBack += this.padding; this.logRef.nativeElement.scrollTop -= Math.floor(this.scrollBack); @@ -88,7 +98,7 @@ export class ChatComponent implements OnDestroy, AfterViewChecked { public sendMessage(): void { if (this.message) { if (this.message.length > environment.chatMessageLengthLimit) { - this.client.messageReception.next({content: `You cannot send a message longer than ${environment.chatMessageLengthLimit} characters.`}); + this.client.messageReception.next({ content: `You cannot send a message longer than ${ environment.chatMessageLengthLimit } characters.` }); return; } @@ -116,29 +126,8 @@ export class ChatComponent implements OnDestroy, AfterViewChecked { this.inputRef.nativeElement.blur(); } - @ViewChild('input') - private inputRef!: ElementRef; - - @ViewChildren('entry') - private entryRefQuery!: QueryList; - - @ViewChild('log') - private logRef!: ElementRef; - - private odd = false; - private autoScroll = true; - private newMessage = false; - - private scrollBack = 0; - - private messageSubscription: Subscription; - private activationSubscription: Subscription; - - private get maxScroll(): number { - return this.logRef.nativeElement.scrollHeight - this.logRef.nativeElement.clientHeight; - } - private focusMessage(): void { this.inputRef.nativeElement.focus(); } + } diff --git a/Code/skyrim_ui/src/app/components/connect/connect.component.html b/Code/skyrim_ui/src/app/components/connect/connect.component.html index 2bdcf1981..23f2ffeb6 100644 --- a/Code/skyrim_ui/src/app/components/connect/connect.component.html +++ b/Code/skyrim_ui/src/app/components/connect/connect.component.html @@ -1,14 +1,20 @@

Connect to a server using its full address. Use the format address:port. The port defaults to 10578.

-

Do NOT connect to any server if you are still in the Helgen intro sequence. Make sure you just escaped Helgen first.

+

Do NOT connect to any server if you are still in the Helgen intro sequence. Make sure you just escaped Helgen + first.

+ + + + + -
+
diff --git a/Code/skyrim_ui/src/app/components/connect/connect.component.scss b/Code/skyrim_ui/src/app/components/connect/connect.component.scss index 98f0b05d8..6727f1fef 100644 --- a/Code/skyrim_ui/src/app/components/connect/connect.component.scss +++ b/Code/skyrim_ui/src/app/components/connect/connect.component.scss @@ -1,50 +1,66 @@ -@import 'env'; +@import "env"; -@import 'functions/mod'; -@import 'mixins/gapped-vertical'; +@import "functions/mod"; +@import "mixins/gapped-vertical"; app-connect { display: block; font-size: 1.25rem; - font-family: 'futura-condensed-medium', 'Roboto Condensed', 'Trebutchet MS', 'Tahoma', 'Geneva', - 'Verdana', 'sans-serif'; - - app-window { + .app-connect { @include gapped-vertical($-size-gap); display: flex; flex-direction: column; align-items: center; - } -} -.app-connect { - @include gapped-vertical($-size-gap); + .save-password { + margin-top: 0.2em; + width: 100%; + display: flex; + justify-items: start; + align-items: center; - display: flex; - flex-direction: column; - align-items: center; + label { + font-size: 0.8em; + } - p { - line-height: $-size-line; - text-align: justify; - } + input { + margin-left: 0.7em; + width: unset; + } + } - strong { - color: mod($-color-background, 1); - } + p { + line-height: $-size-line; + text-align: justify; + } + + strong { + color: mod($-color-background, 1); + } + + input { + width: 100%; + } - input { - width: 100%; + hr { + border: 0; + clear: both; + display: block; + width: 80%; + background-color: grey; + height: 1px; + } } - hr { - border: 0; - clear:both; - display:block; - width: 80%; - background-color:grey; - height: 1px; + app-window { + @include gapped-vertical($-size-gap); + + display: flex; + flex-direction: column; + align-items: center; } } + + diff --git a/Code/skyrim_ui/src/app/components/connect/connect.component.ts b/Code/skyrim_ui/src/app/components/connect/connect.component.ts index 4ff390073..511c9d792 100644 --- a/Code/skyrim_ui/src/app/components/connect/connect.component.ts +++ b/Code/skyrim_ui/src/app/components/connect/connect.component.ts @@ -3,6 +3,8 @@ import { Subscription } from 'rxjs'; import { ClientService } from '../../services/client.service'; import { ErrorService } from '../../services/error.service'; import { Sound, SoundService } from '../../services/sound.service'; +import { StoreService } from '../../services/store.service'; +import { RootView } from '../root/root.component'; @Component({ @@ -13,20 +15,20 @@ import { Sound, SoundService } from '../../services/sound.service'; }) export class ConnectComponent implements OnDestroy, AfterViewInit { - @Output() - public done = new EventEmitter(); - @Output() - public setView = new EventEmitter(); - public address = ''; public token = ''; + public savePassword = false; public connecting = false; + @Output() public done = new EventEmitter(); + @Output() public setView = new EventEmitter(); + public constructor( - private client: ClientService, - private sound: SoundService, - private errorService: ErrorService, + private readonly client: ClientService, + private readonly sound: SoundService, + private readonly errorService: ErrorService, + private readonly storeService: StoreService, ) { this.connectionSubscription = this.client.connectionStateChange.subscribe(state => { if (this.connecting) { @@ -52,6 +54,10 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { this.errorService.error('You cannot connect to the server because it does not have the same version of Skyrim Together as you.'); } }); + + this.address = this.storeService.get('last_connected_address', ''); + this.token = this.storeService.get('last_connected_token', ''); + this.savePassword = !!this.storeService.get('last_connected_token', null); } public ngAfterViewInit(): void { @@ -76,6 +82,13 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { this.connecting = true; + this.storeService.set('last_connected_address', this.address); + if (this.savePassword) { + this.storeService.set('last_connected_token', this.token); + } else { + this.storeService.remove('last_connected_token'); + } + this.sound.play(Sound.Ok); this.client.connect(address[1], address[2] ? Number.parseInt(address[2]) : 10578, this.token); } @@ -86,7 +99,7 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { } public openServerList(): void { - this.setView.next('serverList'); + this.setView.next(RootView.SERVER_LIST); } @ViewChild('input') @@ -99,7 +112,7 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { @HostListener('window:keydown.escape', ['$event']) // @ts-ignore private activate(event: KeyboardEvent): void { - if (this.errorService.error$.value) { + if (this.errorService.error$.getValue()) { this.errorService.removeError(); } else { this.done.next(); diff --git a/Code/skyrim_ui/src/app/components/debug/debug.component.html b/Code/skyrim_ui/src/app/components/debug/debug.component.html index ed9bdb0aa..2adbce975 100644 --- a/Code/skyrim_ui/src/app/components/debug/debug.component.html +++ b/Code/skyrim_ui/src/app/components/debug/debug.component.html @@ -1,15 +1,18 @@ -
-
+
+
- {{ debugData.RTT }} ms, {{ debugData.packetLoss }}% Loss  + + {{ debugData.RTT }} ms, {{ debugData.packetLoss }}% Loss  - {{ debugData.receivedBandwidth / 1024 | number:'.0-2' }} kB/s, + + {{ debugData.receivedBandwidth / 1024 | number:'.0-2' }} kB/s, {{ debugData.numPacketsReceived | number:'.0-2' }} p/s  - {{ debugData.sentBandwidth / 1024 | number:'.0-2' }} kB/s, {{ - debugData.numPacketsSent | number:'.0-2' }} p/s  + + {{ debugData.sentBandwidth / 1024 | number:'.0-2' }} kB/s, {{ + debugData.numPacketsSent | number:'.0-2' }} p/s 
-
\ No newline at end of file +
diff --git a/Code/skyrim_ui/src/app/components/debug/debug.component.ts b/Code/skyrim_ui/src/app/components/debug/debug.component.ts index 1f3290a2e..8f43f200d 100644 --- a/Code/skyrim_ui/src/app/components/debug/debug.component.ts +++ b/Code/skyrim_ui/src/app/components/debug/debug.component.ts @@ -1,49 +1,35 @@ -import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core'; -import { Subscription } from 'rxjs'; +import { Component, ViewEncapsulation } from '@angular/core'; +import { faArrowDown, faArrowUp, faWifi, IconDefinition } from '@fortawesome/free-solid-svg-icons'; +import { Observable, startWith } from 'rxjs'; +import { SettingService } from 'src/app/services/setting.service'; +import { Debug } from '../../models/debug'; import { ClientService } from '../../services/client.service'; import { animation as popupsAnimation } from '../root/popups.animation'; -import { Debug } from '../../models/debug'; -import { StoreService } from '../../services/store.service'; -import { faWifi, faArrowDown, faArrowUp, IconDefinition } from "@fortawesome/free-solid-svg-icons"; -import { SettingService } from 'src/app/services/setting.service'; + @Component({ selector: 'app-debug', templateUrl: './debug.component.html', styleUrls: ['./debug.component.scss'], encapsulation: ViewEncapsulation.None, - animations: [ popupsAnimation ] + animations: [popupsAnimation], }) -export class DebugComponent implements OnInit, OnDestroy { - isShown = false; - debugData = new Debug(); - debugState$: Subscription; - debugData$: Subscription; +export class DebugComponent { + + /* ### ICONS ### */ faWifi: IconDefinition = faWifi; faArrowDown: IconDefinition = faArrowDown; faArrowUp: IconDefinition = faArrowUp; - constructor(private client: ClientService, - private settings: SettingService) { - this.isShown = this.settings.isDebugShown(); - } - - ngOnInit() { - this.debugState$ = this.client.debugStateChange.subscribe((state: boolean) => { - this.isShown = state; - }); + isShown$: Observable; + debugData$: Observable; - this.debugData$ = this.client.debugDataChange.subscribe((data: Debug) => { - this.debugData = data; - }) + constructor( + private readonly client: ClientService, + private readonly settings: SettingService, + ) { + this.isShown$ = this.client.debugStateChange.pipe(startWith(this.settings.isDebugShown())); + this.debugData$ = this.client.debugDataChange.pipe(startWith(new Debug())); } - ngOnDestroy() { - this.debugState$.unsubscribe(); - this.debugData$.unsubscribe(); - } - - public get active(): boolean { - return this.client.activationStateChange.value; - } } diff --git a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts index a16e442ab..edbf93e00 100644 --- a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts +++ b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts @@ -11,10 +11,12 @@ import { Sound, SoundService } from '../../services/sound.service'; }) export class DisconnectComponent { - @Output() - public done = new EventEmitter(); + @Output() public done = new EventEmitter(); - public constructor(private client: ClientService, private sound: SoundService) { + public constructor( + private readonly client: ClientService, + private readonly sound: SoundService, + ) { } public disconnect(): void { @@ -32,6 +34,7 @@ export class DisconnectComponent { // @ts-ignore private activate(event: KeyboardEvent): void { this.done.next(); + this.sound.play(Sound.Cancel); event.stopPropagation(); event.preventDefault(); diff --git a/Code/skyrim_ui/src/app/components/error/error.component.html b/Code/skyrim_ui/src/app/components/error/error.component.html index 65aaecfb7..f82c9c932 100644 --- a/Code/skyrim_ui/src/app/components/error/error.component.html +++ b/Code/skyrim_ui/src/app/components/error/error.component.html @@ -1,5 +1,5 @@ - -

{{error}}

+ +

{{ error }}

diff --git a/Code/skyrim_ui/src/app/components/error/error.component.ts b/Code/skyrim_ui/src/app/components/error/error.component.ts index a866b1aba..934c01431 100644 --- a/Code/skyrim_ui/src/app/components/error/error.component.ts +++ b/Code/skyrim_ui/src/app/components/error/error.component.ts @@ -1,20 +1,22 @@ import { Component, ViewEncapsulation } from '@angular/core'; +import { Observable } from 'rxjs'; import { ErrorService } from '../../services/error.service'; + @Component({ selector: 'app-error', templateUrl: './error.component.html', styleUrls: ['./error.component.scss'], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, }) export class ErrorComponent { - constructor(private errorService: ErrorService) - { - } + error$: Observable; - public get error(): string { - return this.errorService.error$.value; + constructor( + private readonly errorService: ErrorService, + ) { + this.error$ = this.errorService.error$.asObservable(); } removeError() { diff --git a/Code/skyrim_ui/src/app/components/group/group.component.html b/Code/skyrim_ui/src/app/components/group/group.component.html index afc1501ca..2e8f31538 100644 --- a/Code/skyrim_ui/src/app/components/group/group.component.html +++ b/Code/skyrim_ui/src/app/components/group/group.component.html @@ -1,17 +1,22 @@ -
-
-
- {{ player.value.level }} -
+
+
+
+ {{ player.level }} +
-
- {{ player.value.name }} -
-
+
+ {{ player.name }} +
+
-
\ No newline at end of file +
diff --git a/Code/skyrim_ui/src/app/components/group/group.component.ts b/Code/skyrim_ui/src/app/components/group/group.component.ts index 16f44463f..5bd713f7e 100644 --- a/Code/skyrim_ui/src/app/components/group/group.component.ts +++ b/Code/skyrim_ui/src/app/components/group/group.component.ts @@ -1,15 +1,13 @@ -import { Component, OnInit, ViewEncapsulation, OnDestroy, setTestabilityGetter } from '@angular/core'; -import { GroupService } from '../../services/group.service'; -import { Subscription, timer } from 'rxjs'; +import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; +import { BehaviorSubject, combineLatestWith, Observable, Subscription, takeUntil, timer } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { SettingService } from 'src/app/services/setting.service'; import { Group } from '../../models/group'; -import { animation as popupsAnimation } from '../root/popups.animation'; -import { ClientService } from '../../services/client.service'; import { Player } from '../../models/player'; -import { ErrorService } from '../../services/error.service'; -import { SoundService, Sound } from '../../services/sound.service'; -import { LoadingService } from '../../services/loading.service'; -import { SettingService } from 'src/app/services/setting.service'; -import { PlayerListService } from 'src/app/services/player-list.service'; +import { DestroyService } from '../../services/asset/destroy.service'; +import { ClientService } from '../../services/client.service'; +import { GroupService } from '../../services/group.service'; +import { animation as popupsAnimation } from '../root/popups.animation'; @Component({ @@ -17,64 +15,46 @@ import { PlayerListService } from 'src/app/services/player-list.service'; templateUrl: './group.component.html', styleUrls: ['./group.component.scss'], encapsulation: ViewEncapsulation.None, - animations: [popupsAnimation] + animations: [popupsAnimation], + providers: [DestroyService], }) export class GroupComponent implements OnInit, OnDestroy { - public isAutoHide = true; - public isShown = true; - public waitLaunch = false; - - private connectionSubscription: Subscription; - private isLoading: Subscription; - private timerSubscription: Subscription; - private userHealthSubscription: Subscription; - private connectionStateSubscription: Subscription; - private partyInfoSubscription: Subscription; - - private partyShownSubscription: Subscription; - private partyAutoHideSubscription: Subscription; - - private activationSubscription: Subscription; - - constructor(public groupService: GroupService, - private clientService: ClientService, - private errorService: ErrorService, - private soundService: SoundService, - private loadingService: LoadingService, - private settings: SettingService, - private playerListService: PlayerListService) { - this.isShown = this.settings.isPartyShown(); - this.isAutoHide = this.settings.isPartyAutoHidden(); + timerSubscription: Subscription; + + groupMembers$: Observable<(Player & { isOwner: boolean })[]>; + group$: Observable; + + public isAutoHide = new BehaviorSubject(true); + public isShown = new BehaviorSubject(true); + public waitLaunch = new BehaviorSubject(false); + + constructor( + private readonly destroy$: DestroyService, + private readonly groupService: GroupService, + private readonly clientService: ClientService, + private readonly settings: SettingService, + ) { + this.isShown.next(this.settings.isPartyShown()); + this.isAutoHide.next(this.settings.isPartyAutoHidden()); + + this.group$ = this.groupService.group.asObservable(); + this.groupMembers$ = this.groupService.selectMembers() + .pipe( + combineLatestWith(this.groupService.group), + map(([members, group]) => { + if (!group) { + return []; + } + return members + .map(member => ({ ...member, isOwner: member.id === group.owner })) + .sort((a, b) => ((group.owner === a.id) === (group.owner === b.id) ? 0 : group.owner === a.id ? -1 : 1)); + }, + ), + ); } - ngOnInit() { - - //TODO Delete? - i see no reason keeping this - - // this.isLoading = this.loadingService.getLoading().subscribe((isLoading: boolean) => { - // this.waitLaunch = isLoading; - // }) - - // this.connectionSubscription = this.clientService.connectionStateChange.subscribe((state) => { - // if (this.waitLaunch) { - // this.loadingService.setLoading(false); - // this.clientService.messageReception.next({ content: "Connected!" }); - - // if (state) { - // this.soundService.play(Sound.Success); - // } - // else { - // this.soundService.play(Sound.Fail); - - // this.errorService.error( - // 'Unable to reach the game server. Please try again later.' - // ); - // } - // } - // }); - this.onPartyShownState(); this.onPartyAutoHideState(); @@ -85,120 +65,93 @@ export class GroupComponent implements OnInit, OnDestroy { } private subscribeActivation() { - this.activationSubscription = this.clientService.activationStateChange.subscribe((state: boolean) => { - this.flashGroup(); - }) + this.clientService.activationStateChange + .pipe(takeUntil(this.destroy$)) + .subscribe(() => { + this.flashGroup(); + }); } private subscribeChangeHealth() { - this.userHealthSubscription = this.clientService.healthChange.subscribe((p: Player) => { - this.flashGroup(); - }) + this.clientService.healthChange + .pipe(takeUntil(this.destroy$)) + .subscribe(() => { + this.flashGroup(); + }); } private onPartyInfo() { - this.partyInfoSubscription = this.clientService.partyInfoChange.subscribe(() => { - this.flashGroup(); - }) + this.clientService.partyInfoChange + .pipe(takeUntil(this.destroy$)) + .subscribe(() => { + this.flashGroup(); + }); } private onConnectionState() { - this.connectionStateSubscription = this.clientService.connectionStateChange.subscribe((state: boolean) => { - if (this.isAutoHide) { - if (state) { - this.flashGroup(); - } - else { - if (this.timerSubscription) { - this.timerSubscription.unsubscribe(); + this.clientService.connectionStateChange + .pipe(takeUntil(this.destroy$)) + .subscribe((state: boolean) => { + if (this.isAutoHide.getValue()) { + if (state) { + this.flashGroup(); + } else { + if (this.timerSubscription) { + this.timerSubscription.unsubscribe(); + } } } - } - }) + }); } private onPartyShownState() { - this.partyShownSubscription = this.settings.partyShownChange.subscribe((state: boolean) => { - this.isShown = state; - this.isAutoHide = false; - this.flashGroup(); - }); + this.settings.partyShownChange + .pipe(takeUntil(this.destroy$)) + .subscribe((state: boolean) => { + this.isShown.next(state); + this.isAutoHide.next(false); + this.flashGroup(); + }); } private onPartyAutoHideState() { - this.partyAutoHideSubscription = this.settings.partyAutoHideChange.subscribe((state: boolean) => { - this.isAutoHide = state; - if (this.settings.isPartyShown()) { - this.isShown = true; - } - this.flashGroup(); - }) + this.settings.partyAutoHideChange + .pipe(takeUntil(this.destroy$)) + .subscribe((state: boolean) => { + this.isAutoHide.next(state); + if (this.settings.isPartyShown()) { + this.isShown.next(true); + } + this.flashGroup(); + }); } ngOnDestroy() { - this.connectionSubscription.unsubscribe(); - this.isLoading.unsubscribe(); - this.userHealthSubscription.unsubscribe(); - this.partyInfoSubscription.unsubscribe(); - this.connectionStateSubscription.unsubscribe(); - - this.partyShownSubscription.unsubscribe(); - this.partyAutoHideSubscription.unsubscribe(); - if (this.timerSubscription) { this.timerSubscription.unsubscribe(); } } private flashGroup() { - if (this.isAutoHide && this.clientService.connectionStateChange.value) { - if (!this.isShown) { - this.isShown = true; + if (this.isAutoHide.getValue() && this.clientService.connectionStateChange.getValue()) { + if (!this.isShown.getValue()) { + this.isShown.next(true); } if (this.timerSubscription) { this.timerSubscription.unsubscribe(); } - if (!this.active) { + if (!this.clientService.activationStateChange.getValue()) { let timerLength = this.settings.getAutoHideTime() * 1000; let source = timer(timerLength); this.timerSubscription = source.subscribe(() => { - this.isShown = false; - }) + this.isShown.next(false); + }); } } } - public get isConnected(): boolean { - return this.clientService.connectionStateChange.value; - } - - public get group(): Group | undefined { - return this.groupService.group.value; - } - - public get groupMembers(): Array { - let members = this.groupService.getMembers(); - return members.sort((a, b) => (this.isOwner(a.id) === this.isOwner(b.id)) ? 0 : this.isOwner(a.id) ? -1 : 1); - } - - public get getOwner(): Player { - return this.playerListService.getPlayerById(this.group.owner); - } - - public isOwner(playerId): boolean { - return this.group.owner === playerId; - } - - public get active(): boolean { - return this.clientService.activationStateChange.value; - } - - isLeaveDisabled(): boolean { - return (this.waitLaunch || !this.groupService.isPartyEnabled()); - } - public invite(playerId: number) { this.groupService.invite(playerId); } @@ -215,7 +168,4 @@ export class GroupComponent implements OnInit, OnDestroy { this.groupService.changeLeader(playerId); } - public getLeaderName(): string { - return this.groupService.getLeaderName(); - } } diff --git a/Code/skyrim_ui/src/app/components/loading/loading.component.html b/Code/skyrim_ui/src/app/components/loading/loading.component.html index 573fd1218..41176c3d5 100644 --- a/Code/skyrim_ui/src/app/components/loading/loading.component.html +++ b/Code/skyrim_ui/src/app/components/loading/loading.component.html @@ -1 +1 @@ - +
diff --git a/Code/skyrim_ui/src/app/components/loading/loading.component.scss b/Code/skyrim_ui/src/app/components/loading/loading.component.scss index acf7e0b2a..033d622e2 100644 --- a/Code/skyrim_ui/src/app/components/loading/loading.component.scss +++ b/Code/skyrim_ui/src/app/components/loading/loading.component.scss @@ -5,7 +5,7 @@ app-loading { margin-top: -17px; margin-left: -17px; - .app-loading-gif { + > div { background-image: url("../../../assets/images/loading.gif"); width: 34px; height: 34px; diff --git a/Code/skyrim_ui/src/app/components/loading/loading.component.ts b/Code/skyrim_ui/src/app/components/loading/loading.component.ts index 6aab3e6fe..93e1e4a8d 100644 --- a/Code/skyrim_ui/src/app/components/loading/loading.component.ts +++ b/Code/skyrim_ui/src/app/components/loading/loading.component.ts @@ -1,26 +1,22 @@ -import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core'; +import { Component, ViewEncapsulation } from '@angular/core'; +import { Observable } from 'rxjs'; import { LoadingService } from '../../services/loading.service'; -import { Subscription } from 'rxjs'; + @Component({ selector: 'app-loading', templateUrl: './loading.component.html', styleUrls: ['./loading.component.scss'], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, }) -export class LoadingComponent implements OnInit, OnDestroy { - private isLoading$: Subscription; - public isLoading = false; +export class LoadingComponent { - constructor(private loadingService: LoadingService) { } + isLoading$: Observable; - ngOnInit() { - this.isLoading$ = this.loadingService.getLoading().subscribe((isLoading: boolean) => { - this.isLoading = isLoading; - }) + constructor( + private readonly loadingService: LoadingService, + ) { + this.isLoading$ = this.loadingService.getLoading(); } - ngOnDestroy() { - this.isLoading$.unsubscribe; - } } diff --git a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.html b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.html index 5cfd69e83..5fe9499cf 100644 --- a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.html +++ b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.html @@ -1,4 +1,4 @@ -
+
diff --git a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts index 145ecfbc1..48772e9c2 100644 --- a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts +++ b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts @@ -1,46 +1,49 @@ -import { Component, ViewEncapsulation, HostListener, OnDestroy, OnInit } from '@angular/core'; -import { animation as popupsAnimation } from '../root/popups.animation'; -import { animation as popupTestAnimation } from '../popup/popup.animation'; -import { Subscription } from 'rxjs'; -import { PopupNotificationService } from '../../services/popup-notification.service'; -import { PopupNotification, NotificationType } from '../../models/popup-notification'; -import { GroupService } from '../../services/group.service'; +import { Component, HostListener, OnInit, ViewEncapsulation } from '@angular/core'; +import { takeUntil } from 'rxjs'; import { environment } from '../../../environments/environment'; import { Player } from '../../models/player'; +import { NotificationType, PopupNotification } from '../../models/popup-notification'; +import { DestroyService } from '../../services/asset/destroy.service'; +import { GroupService } from '../../services/group.service'; +import { PopupNotificationService } from '../../services/popup-notification.service'; +import { animation as popupTestAnimation } from '../popup/popup.animation'; +import { animation as popupsAnimation } from '../root/popups.animation'; + @Component({ selector: 'app-notification-popup', templateUrl: './notification-popup.component.html', styleUrls: ['./notification-popup.component.scss'], encapsulation: ViewEncapsulation.None, - animations: [ popupsAnimation, popupTestAnimation ] + animations: [popupsAnimation, popupTestAnimation], + providers: [DestroyService], }) -export class NotificationPopupComponent implements OnDestroy, OnInit { - - public isActive = false; - public notification: PopupNotification; - - private notificationSubscription: Subscription; +export class NotificationPopupComponent implements OnInit { - constructor(private groupService: GroupService, - private popupNotificationService: PopupNotificationService) {} + isActive = false; + notification: PopupNotification; - ngOnInit() { - this.notificationSubscription = this.popupNotificationService.message.subscribe((notification: PopupNotification) => { - this.notification = notification; - this.isActive = (notification.message !== ""); - }); + constructor( + private readonly destroy$: DestroyService, + private readonly groupService: GroupService, + private readonly popupNotificationService: PopupNotificationService, + ) { } - ngOnDestroy() { - this.notificationSubscription.unsubscribe(); + ngOnInit() { + this.popupNotificationService.message + .pipe(takeUntil(this.destroy$)) + .subscribe((notification: PopupNotification) => { + this.notification = notification; + this.isActive = (notification.message !== ''); + }); } - public get isConnected(): boolean { + get isConnected(): boolean { return this.notification.type === NotificationType.Connection; } - public clickNotif() { + clickNotification() { this.isActive = false; if (this.notification.type === NotificationType.Invitation) { if (this.notification.player) { @@ -51,21 +54,22 @@ export class NotificationPopupComponent implements OnDestroy, OnInit { } } - @HostListener('window:keydown.n', [ '$event' ]) + @HostListener('window:keydown.n', ['$event']) // @ts-ignore private activate(event: KeyboardEvent): void { // Just for deskop if (!environment.game) { this.notification = { - message: "test notif", + message: 'test notif', player: new Player({ - name: "Dumbeldor", + name: 'Dumbeldor', online: true, - avatar: "https://skyrim-together.com/images/float/avatars/random3.jpg"}), - type: NotificationType.Connection}; + avatar: 'https://skyrim-together.com/images/float/avatars/random3.jpg', + }), + type: NotificationType.Connection, + }; this.isActive = !this.isActive; } } - } diff --git a/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts b/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts index cccb17144..ed869fbdc 100644 --- a/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts +++ b/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts @@ -1,5 +1,6 @@ -import { Component, OnDestroy, ViewEncapsulation } from '@angular/core'; -import { Subscription } from 'rxjs'; +import { Component, ViewEncapsulation } from '@angular/core'; +import { takeUntil } from 'rxjs'; +import { DestroyService } from '../../services/asset/destroy.service'; import { ClientService } from '../../services/client.service'; @@ -13,30 +14,32 @@ interface Notification { templateUrl: './notifications.component.html', styleUrls: ['./notifications.component.scss'], encapsulation: ViewEncapsulation.None, + providers: [DestroyService], }) -export class NotificationsComponent implements OnDestroy { +export class NotificationsComponent { + public notifications = [] as Notification[]; - public constructor(private client: ClientService) { - this.messageSubscription = this.client.messageReception.subscribe(message => { - this.notifications.push({ - content: `${ message.name ? `Message from ${ message.name }: ` : '' }${ message.content }`, - timer: setTimeout(() => { - this.notifications.shift(); - }, 5000), - }); + public constructor( + private readonly destroy$: DestroyService, + private readonly client: ClientService, + ) { + this.client.messageReception + .pipe(takeUntil(this.destroy$)) + .subscribe(message => { + this.notifications.push({ + content: `${ message.name ? `Message from ${ message.name }: ` : '' }${ message.content }`, + timer: setTimeout(() => { + this.notifications.shift(); + }, 5000), + }); - if (this.notifications.length > 5) { - for (let notification of this.notifications.splice(0, this.notifications.length - 5)) { - clearTimeout(notification.timer); + if (this.notifications.length > 5) { + for (let notification of this.notifications.splice(0, this.notifications.length - 5)) { + clearTimeout(notification.timer); } } }); } - public ngOnDestroy(): void { - this.messageSubscription.unsubscribe(); - } - - private messageSubscription: Subscription; } diff --git a/Code/skyrim_ui/src/app/components/order/order.component.html b/Code/skyrim_ui/src/app/components/order/order.component.html index f905edee7..d2bbac4bf 100644 --- a/Code/skyrim_ui/src/app/components/order/order.component.html +++ b/Code/skyrim_ui/src/app/components/order/order.component.html @@ -1,4 +1,8 @@ diff --git a/Code/skyrim_ui/src/app/components/order/order.component.scss b/Code/skyrim_ui/src/app/components/order/order.component.scss index 9db8c9b7b..0020d8126 100644 --- a/Code/skyrim_ui/src/app/components/order/order.component.scss +++ b/Code/skyrim_ui/src/app/components/order/order.component.scss @@ -1,4 +1,4 @@ -.sortingicon { +.sorting-icon { font-size: 1.5rem; vertical-align: sub; } diff --git a/Code/skyrim_ui/src/app/components/order/order.component.ts b/Code/skyrim_ui/src/app/components/order/order.component.ts index 183f98ca2..e70e799c3 100644 --- a/Code/skyrim_ui/src/app/components/order/order.component.ts +++ b/Code/skyrim_ui/src/app/components/order/order.component.ts @@ -1,5 +1,6 @@ -import { Component, OnInit, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core'; -import { faCaretUp, faCaretDown} from "@fortawesome/free-solid-svg-icons"; +import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; +import { faCaretDown, faCaretUp } from '@fortawesome/free-solid-svg-icons'; + @Component({ selector: 'app-order', @@ -7,20 +8,14 @@ import { faCaretUp, faCaretDown} from "@fortawesome/free-solid-svg-icons"; styleUrls: ['./order.component.scss'], encapsulation: ViewEncapsulation.None, }) -export class OrderComponent implements OnInit { - - @Input() - public isIncreasingOrder: boolean; +export class OrderComponent { - @Output() - public sorted = new EventEmitter(); - public faCaretDown = faCaretDown; - public faCaretUp = faCaretUp; + /* ### ICONS ### */ + readonly faCaretDown = faCaretDown; + readonly faCaretUp = faCaretUp; - constructor() { } - - ngOnInit() { - } + @Input() public isIncreasingOrder: boolean; + @Output() public sorted = new EventEmitter(); public sort() { this.sorted.emit(!this.isIncreasingOrder); diff --git a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html index 55ae4e5a5..1143ad35f 100644 --- a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html +++ b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html @@ -1,11 +1,19 @@ -
- - - +
+ + +
- -

For an optimal questing experience, make sure to read the playguide on our wiki, which you can find through our website, skyrim-together.com. Here is a small summary of the guidelines:

+ +

+ For an optimal questing experience, make sure to read the playguide on our wiki, which you can + find through our website, skyrim-together.com. Here is a small summary of the guidelines: +

  • By creating a party, you sort of become the "host", aka the party leader.
  • Only the party leader can talk to quest NPCs to progress quests.
  • @@ -16,36 +24,46 @@
-
+
There is nobody in your party yet. Invite them through the player list!
-
- - +
+
+ - + - - - - - - - - - - + + + + + +
Lv. Name Location
{{ player.value.level }}{{ player.value.name }}{{ player.value.cellName }}
{{ player.level }}{{ player.name }}{{ player.cellName }} + + + +
@@ -53,4 +71,4 @@ - \ No newline at end of file + diff --git a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.scss b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.scss index b416b1374..187935779 100644 --- a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.scss +++ b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.scss @@ -1,66 +1,66 @@ app-party-menu { - position: relative; - display: flex; - flex-direction: column; - margin-top: 1rem; + position: relative; + display: flex; + flex-direction: column; + margin-top: 1rem; - #noPlayers { - overflow: hidden; - } + .no-players { + overflow: hidden; + } - .hidden { - display: none; - } - - .party-menu-button { - padding: 0.25vw; - background-color: #292929; - border-radius: 2px; - width: 100%; - margin-bottom: 0.5rem; - } + .hidden { + display: none; + } - .containerList { - overflow: auto; - max-height: 60vh; - margin-bottom: 1.0rem; + .party-menu-button { + padding: 0.25vw; + background-color: #292929; + border-radius: 2px; + width: 100%; + margin-bottom: 0.5rem; + } - .playerListTable { - width: 100%; - border-collapse: collapse; + .container-list { + overflow: auto; + max-height: 60vh; + margin-bottom: 1.0rem; - .listHeader { - position: sticky; - top: 0px; - background-color: #151515; - z-index: 1; - } + .player-list-table { + width: 100%; + border-collapse: collapse; - th { - text-align: left; - border-bottom: 1px solid grey; - border-collapse: separate; + .list-header { + position: sticky; + top: 0; + background-color: #151515; + z-index: 1; + } - button { - padding: 0 0.5rem; - } - } + th { + text-align: left; + border-bottom: 1px solid grey; + border-collapse: separate; - tr:not(:last-child) { - border-bottom: 1px solid grey; - padding: 15px; - } + button { + padding: 0 0.5rem; + } + } - #noserv { - margin-top: 3%; - } + tr:not(:last-child) { + border-bottom: 1px solid grey; + padding: 15px; + } - .teleBtn { - padding: 0.25vw; - background-color: #292929; - border-radius: 2px; - margin-left: 5%; - } - } + #noserv { + margin-top: 3%; + } + + .user-action-button { + padding: 0.25vw; + background-color: #292929; + border-radius: 2px; + margin-left: 5%; + } } -} \ No newline at end of file + } +} diff --git a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.ts b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.ts index e8e7e3f24..a13df70cc 100644 --- a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.ts +++ b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.ts @@ -1,91 +1,75 @@ -import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewEncapsulation } from "@angular/core"; -import { Subscription } from "rxjs"; -import { GroupService } from "src/app/services/group.service"; -import { LoadingService } from "src/app/services/loading.service"; -import { Player } from "src/app/models/player"; -import { PlayerList } from "src/app/models/player-list"; -import { PlayerListService } from "src/app/services/player-list.service"; -import { Group } from "src/app/models/group"; -import { ClientService } from "src/app/services/client.service"; +import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { Observable, pluck } from 'rxjs'; +import { filter, map } from 'rxjs/operators'; +import { Player } from 'src/app/models/player'; +import { ClientService } from 'src/app/services/client.service'; +import { GroupService } from 'src/app/services/group.service'; +import { LoadingService } from 'src/app/services/loading.service'; +import { PlayerListService } from 'src/app/services/player-list.service'; + @Component({ - selector: 'app-party-menu', - templateUrl: './party-menu.component.html', - styleUrls: ['./party-menu.component.scss'], - encapsulation: ViewEncapsulation.None + selector: 'app-party-menu', + templateUrl: './party-menu.component.html', + styleUrls: ['./party-menu.component.scss'], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, }) -export class PartyMenuComponent implements OnInit, OnDestroy { - - public waitLaunch = false; - - private isLoading: Subscription; - - constructor(public groupService: GroupService, - private loadingService: LoadingService, - private playerListService: PlayerListService, - private clientService: ClientService) - { } - - ngOnInit(): void { - - this.isLoading = this.loadingService.getLoading().subscribe((isLoading: boolean) => { - this.waitLaunch = isLoading; - }) - } - - ngOnDestroy(): void { - this.isLoading.unsubscribe(); - } - - public get playerList(): PlayerList | undefined { - return this.playerListService.playerList.value; - } - - public get invitees(): Array | undefined { - return this.playerListService.playerList.value.players.filter(player => player.hasInvitedLocalPlayer); - } - - public get group(): Group | undefined { - return this.groupService.group.value; - } - - public get members(): Array | undefined { - return this.groupService.getMembers(); - } - - public get isPartyLeader(): boolean { - return this.groupService.group.value.isEnabled && this.groupService.group.value.owner == this.clientService.localPlayerId; - } - - public get getMembersLength(): number { - return this.groupService.getMembersLength(true); - } - - isLaunchPartyDisabled(): boolean { - return this.groupService.getMembersLength(false) > 1; - } - - public launchParty() { - this.groupService.launch(); - } - - public leave() { - this.groupService.leave(); - } - - public teleportToPlayer(playerId: number) { - this.clientService.teleportToPlayer(playerId); - } - - public acceptPartyInvite(inviterId: number) { - this.playerListService.acceptPartyInvite(inviterId); - } - - public kickMember(playerId: number) { - this.clientService.kickPartyMember(playerId); - } - - public changeLeader(playerId: number) { - this.clientService.changePartyLeader(playerId); - } -} \ No newline at end of file +export class PartyMenuComponent { + + isLoading$ = this.loadingService.getLoading(); + members$ = this.groupService.selectMembers(); + memberCount$ = this.groupService.selectMembersLength(true); + group$ = this.groupService.group.asObservable(); + isLaunchPartyDisabled$: Observable; + invitations$: Observable; + isPartyLeader$: Observable; + + constructor( + private readonly groupService: GroupService, + private readonly loadingService: LoadingService, + private readonly playerListService: PlayerListService, + private readonly clientService: ClientService, + ) { + this.invitations$ = this.playerListService.playerList + .asObservable() + .pipe( + filter(playerlist => !!playerlist), + pluck('players'), + map(players => players.filter(player => player.hasInvitedLocalPlayer)), + ); + this.isPartyLeader$ = this.groupService.group + .asObservable() + .pipe( + map(group => group.isEnabled && group.owner == this.clientService.localPlayerId), + ); + this.isLaunchPartyDisabled$ = this.groupService.selectMembersLength(false).pipe( + map(count => count > 1), + ); + } + + public launchParty() { + this.groupService.launch(); + } + + public leave() { + this.groupService.leave(); + } + + public teleportToPlayer(playerId: number) { + this.clientService.teleportToPlayer(playerId); + } + + public acceptPartyInvite(inviterId: number) { + this.playerListService.acceptPartyInvite(inviterId); + } + + public kickMember(playerId: number) { + this.clientService.kickPartyMember(playerId); + } + + public changeLeader(playerId: number) { + this.clientService.changePartyLeader(playerId); + } + +} diff --git a/Code/skyrim_ui/src/app/components/player-list/player-list.component.html b/Code/skyrim_ui/src/app/components/player-list/player-list.component.html index 527174dde..b7151d42f 100644 --- a/Code/skyrim_ui/src/app/components/player-list/player-list.component.html +++ b/Code/skyrim_ui/src/app/components/player-list/player-list.component.html @@ -1,26 +1,35 @@ -
+
Nobody here but us chickens!
-
- - +
+
+ - + - - - - - + + + + +
Lv. Name Location
{{ player.value.level }}{{ player.value.name }}{{ player.value.cellName }}
{{ player.level }}{{ player.name }}{{ player.cellName }} + +
-
\ No newline at end of file + diff --git a/Code/skyrim_ui/src/app/components/player-list/player-list.component.scss b/Code/skyrim_ui/src/app/components/player-list/player-list.component.scss index c23fdaa9e..d042b7138 100644 --- a/Code/skyrim_ui/src/app/components/player-list/player-list.component.scss +++ b/Code/skyrim_ui/src/app/components/player-list/player-list.component.scss @@ -1,61 +1,61 @@ app-player-list { - position: relative; - display: flex; - flex-direction: column; - margin-top: 1rem; - - #notInParty { - overflow: hidden; - } - - #noPlayers { - overflow: hidden; - } - - .hidden { - opacity: 0; - } - - .containerList { - overflow: auto; - max-height: 60vh; - - .playerListTable { - width: 100%; - border-collapse: collapse; - - .listHeader { - position: sticky; - top: 0px; - background-color: #151515; - z-index: 1; - } - - th { - text-align: left; - border-bottom: 1px solid grey; - border-collapse: separate; - - button { - padding: 0 0.5rem; - } - } - - tr:not(:last-child) { - border-bottom: 1px solid grey; - padding: 15px; - } - - #noserv { - margin-top: 3%; - } - - .teleBtn { - padding: 0.25vw; - background-color: #292929; - border-radius: 2px; - margin-left: 5%; - } + position: relative; + display: flex; + flex-direction: column; + margin-top: 1rem; + + #notInParty { + overflow: hidden; + } + + #noPlayers { + overflow: hidden; + } + + .hidden { + opacity: 0; + } + + .container-list { + overflow: auto; + max-height: 60vh; + + .player-list-table { + width: 100%; + border-collapse: collapse; + + .list-header { + position: sticky; + top: 0px; + background-color: #151515; + z-index: 1; + } + + th { + text-align: left; + border-bottom: 1px solid grey; + border-collapse: separate; + + button { + padding: 0 0.5rem; } + } + + tr:not(:last-child) { + border-bottom: 1px solid grey; + padding: 15px; + } + + #noserv { + margin-top: 3%; + } + + .user-action-button { + padding: 0.25vw; + background-color: #292929; + border-radius: 2px; + margin-left: 5%; + } } -} \ No newline at end of file + } +} diff --git a/Code/skyrim_ui/src/app/components/player-list/player-list.component.ts b/Code/skyrim_ui/src/app/components/player-list/player-list.component.ts index 2c70ea627..81d6e22f5 100644 --- a/Code/skyrim_ui/src/app/components/player-list/player-list.component.ts +++ b/Code/skyrim_ui/src/app/components/player-list/player-list.component.ts @@ -1,54 +1,59 @@ -import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewEncapsulation } from "@angular/core"; -import { Player } from "src/app/models/player"; -import { PlayerList } from "src/app/models/player-list"; -import { ClientService } from "src/app/services/client.service"; -import { GroupService } from "src/app/services/group.service"; -import { PlayerListService } from "src/app/services/player-list.service"; +import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { combineLatest, Observable, pluck, ReplaySubject, share } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { ClientService } from 'src/app/services/client.service'; +import { GroupService } from 'src/app/services/group.service'; +import { PlayerListService } from 'src/app/services/player-list.service'; +import { Player } from '../../models/player'; + @Component({ selector: 'app-player-list', templateUrl: './player-list.component.html', styleUrls: ['./player-list.component.scss'], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, }) -export class PlayerListComponent implements OnInit, OnDestroy { - - constructor(public playerListService: PlayerListService, - private clientService: ClientService, - private groupService: GroupService - ) { } - - ngOnInit(): void { - } - - ngOnDestroy(): void { - } - - public get playerList(): PlayerList | undefined { - return this.playerListService.playerList.value; - } - - public getListLength(): number { - return this.playerListService.getListLength(); - } - - public get isConnected(): boolean { - return this.clientService.connectionStateChange.value; - } - - public get isPartyLeader(): boolean { - return this.groupService.group.value.isEnabled && this.groupService.group.value.owner == this.clientService.localPlayerId; - } - - public isMember(playerId: number): boolean { - return this.groupService.group.value.members.includes(playerId); +export class PlayerListComponent { + + playerList$: Observable<(Player & { isMember: boolean })[]>; + playerListLength$: Observable; + isPartyLeader$: Observable; + + constructor( + private readonly playerListService: PlayerListService, + private readonly clientService: ClientService, + private readonly groupService: GroupService, + ) { + this.playerList$ = combineLatest([ + this.playerListService.playerList.asObservable().pipe(pluck('players')), + this.groupService.group.asObservable().pipe(pluck('members')), + ]).pipe( + map(([players, members]) => { + if (!players) { + return []; + } + return players.map(player => ({ + ...player, + isMember: members.includes(player.id), + })); + }), + share({ connector: () => new ReplaySubject(1), resetOnRefCountZero: true }), + ); + this.playerListLength$ = this.playerList$ + .pipe( + map(players => players?.length ?? 0), + ); + this.isPartyLeader$ = this.groupService.group + .asObservable() + .pipe( + map(group => group.isEnabled && group.owner == this.clientService.localPlayerId), + share({ connector: () => new ReplaySubject(1), resetOnRefCountZero: true }), + ); } public sendPartyInvite(inviteeId: number) { this.playerListService.sendPartyInvite(inviteeId); } - public hideInviteBtn(playerId: number): boolean { - return this.isMember(playerId) || !this.isPartyLeader; - } -} \ No newline at end of file +} diff --git a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.html b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.html index e44065314..955f5f60a 100644 --- a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.html +++ b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.html @@ -1,11 +1,25 @@ - - - - - - - - -
- -
\ No newline at end of file +
+ + +
+ + + + + + +
+ +
diff --git a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.scss b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.scss index fe656353a..10f8ea2ad 100644 --- a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.scss +++ b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.scss @@ -1,11 +1,29 @@ +@import "env"; + +@import "functions/rem"; + app-player-manager { - position: relative; + position: relative; + display: flex; + flex-direction: column; + + .tab-buttons { display: flex; - flex-direction: column; + padding-bottom: 10px; + margin-bottom: rem($-size-font, 2px); + border-bottom: rem($-size-font, 2px) solid; + border-image: url("../../../assets/images/separator/single.svg") 3; - .buttons { - margin-top: 1rem; - display: flex; - justify-content: center; + button { + flex: 1 1 auto; + display: flex; + justify-content: center; } -} \ No newline at end of file + } + + .actions { + margin-top: 1rem; + display: flex; + justify-content: center; + } +} diff --git a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts index 0f290313b..28c680e88 100644 --- a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts +++ b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts @@ -1,32 +1,41 @@ -import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core'; +import { Component, EventEmitter, HostListener, Output, ViewEncapsulation } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; +import { Sound, SoundService } from '../../services/sound.service'; +export enum PlayerManagerTab { + PLAYER_LIST, + PARTY_MENU +} + @Component({ selector: 'app-player-manager', templateUrl: './player-manager.component.html', styleUrls: ['./player-manager.component.scss'], encapsulation: ViewEncapsulation.None, }) -export class PlayerManagerComponent implements OnInit, OnDestroy { +export class PlayerManagerComponent { - @Output() - public done = new EventEmitter(); + /* ### ENUMS ### */ + readonly PlayerManagerTab = PlayerManagerTab; - constructor() { - } + activeTab = new BehaviorSubject(PlayerManagerTab.PLAYER_LIST); - ngOnInit(): void { - } + @Output() public done = new EventEmitter(); - ngOnDestroy(): void { + constructor( + private readonly sound: SoundService, + ) { } - public cancel(): void { - this.done.next(); + switchTab(tab: PlayerManagerTab) { + this.activeTab.next(tab); + this.sound.play(Sound.Focus); } - private close() { + close() { this.done.next(); + this.sound.play(Sound.Ok); } @HostListener('window:keydown.escape', ['$event']) diff --git a/Code/skyrim_ui/src/app/components/popup/popup.component.ts b/Code/skyrim_ui/src/app/components/popup/popup.component.ts index b798f4e2c..4731b7d2b 100644 --- a/Code/skyrim_ui/src/app/components/popup/popup.component.ts +++ b/Code/skyrim_ui/src/app/components/popup/popup.component.ts @@ -1,15 +1,14 @@ -import { - Component, ViewEncapsulation -} from '@angular/core'; - +import { Component, ViewEncapsulation } from '@angular/core'; import { animation } from './popup.animation'; + @Component({ selector: 'app-popup', templateUrl: './popup.component.html', - styleUrls: [ './popup.component.scss' ], + styleUrls: ['./popup.component.scss'], encapsulation: ViewEncapsulation.None, - animations: [ animation ], - host: { '[@popup]': 'true' } + animations: [animation], + host: { '[@popup]': 'true' }, }) -export class PopupComponent {} +export class PopupComponent { +} diff --git a/Code/skyrim_ui/src/app/components/root/root.component.html b/Code/skyrim_ui/src/app/components/root/root.component.html index 84be343bd..c1ee66d2e 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.html +++ b/Code/skyrim_ui/src/app/components/root/root.component.html @@ -1,59 +1,90 @@ - + - + - + - - - -
- - - - + +
+ + + + - - - +
-
+
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +
- \ No newline at end of file + diff --git a/Code/skyrim_ui/src/app/components/root/root.component.ts b/Code/skyrim_ui/src/app/components/root/root.component.ts index 388260715..6beb13e14 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.ts +++ b/Code/skyrim_ui/src/app/components/root/root.component.ts @@ -1,25 +1,26 @@ -import { - Component, ViewEncapsulation, HostListener, ViewChild, - OnDestroy, - OnInit -} from '@angular/core'; - -import { Subscription } from 'rxjs'; - +import { Component, HostListener, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; +import { faCogs } from '@fortawesome/free-solid-svg-icons'; +import { BehaviorSubject, takeUntil } from 'rxjs'; +import { PartyInfo } from 'src/app/models/party-info'; +import { environment } from '../../../environments/environment'; +import { Player } from '../../models/player'; +import { DestroyService } from '../../services/asset/destroy.service'; import { ClientService } from '../../services/client.service'; -import { SoundService, Sound } from '../../services/sound.service'; - +import { Sound, SoundService } from '../../services/sound.service'; import { ChatComponent } from '../chat/chat.component'; - import { animation as controlsAnimation } from './controls.animation'; import { animation as notificationsAnimation } from './notifications.animation'; import { animation as popupsAnimation } from './popups.animation'; -import { environment } from '../../../environments/environment'; -import { Player } from '../../models/player'; -import { faCogs, IconDefinition } from "@fortawesome/free-solid-svg-icons"; -import { PartyInfo } from 'src/app/models/party-info'; +export enum RootView { + CONNECT, + DISCONNECT, + RECONNECT, + SERVER_LIST, + SETTINGS, + PLAYER_MANAGER, +} @Component({ selector: 'app-root', @@ -27,23 +28,33 @@ import { PartyInfo } from 'src/app/models/party-info'; styleUrls: ['./root.component.scss'], encapsulation: ViewEncapsulation.None, animations: [controlsAnimation, notificationsAnimation, popupsAnimation], - host: { 'data-app-root-game': environment.game.toString() } + host: { 'data-app-root-game': environment.game.toString() }, + providers: [DestroyService], }) -export class RootComponent implements OnInit, OnDestroy { +export class RootComponent implements OnInit { - faCogs: IconDefinition = faCogs; + /* ### ENUMS ### */ + readonly RootView = RootView; - @ViewChild('chat') - private chatComp!: ChatComponent; + /* ### ICONS ### */ + readonly faCogs = faCogs; + + showAppWindow = environment.production || environment.nightlyBuild; + view = new BehaviorSubject(undefined); - private _view?: string; + connected$ = this.client.connectionStateChange.asObservable(); + menuOpen$ = this.client.openingMenuChange.asObservable(); + inGame$ = this.client.inGameStateChange.asObservable(); + active$ = this.client.activationStateChange.asObservable(); + connectionInProgress$ = this.client.isConnectionInProgressChange.asObservable(); - private activationSubscription: Subscription; - private gameSubscription: Subscription; + @ViewChild('chat') + private chatComp!: ChatComponent; public constructor( - private client: ClientService, - private sound: SoundService + private readonly destroy$: DestroyService, + private readonly client: ClientService, + private readonly sound: SoundService, ) { } @@ -53,76 +64,38 @@ export class RootComponent implements OnInit, OnDestroy { } public onInGameStateSubscription() { - this.gameSubscription = this.client.inGameStateChange.subscribe(state => { - if (!state) { - this.view = undefined; - } - }); + this.client.inGameStateChange + .pipe(takeUntil(this.destroy$)) + .subscribe(state => { + if (!state) { + this.setView(undefined); + } + }); } public onActivationStateSubscription() { - this.activationSubscription = this.client.activationStateChange.subscribe(state => { - if (this.inGame && state && !this.view) { - setTimeout(() => this.chatComp.focus(), 100); - } - if (!state) { - this.view = undefined; - } - }); - } - - public ngOnDestroy(): void { - this.gameSubscription.unsubscribe(); - this.activationSubscription.unsubscribe(); - } - - public get openingMenu(): boolean { - return this.client.openingMenuChange.value; - } - - public get connected(): boolean { - return this.client.connectionStateChange.value; - } - - public get active(): boolean { - return this.client.activationStateChange.value; - } - - public get version(): string { - return this.client.versionSet.value; - } - - public get inGame(): boolean { - return this.client.inGameStateChange.value; - } - - public get isConnectionInProgress(): boolean { - return this.client.isConnectionInProgressChange.value; + this.client.activationStateChange + .pipe(takeUntil(this.destroy$)) + .subscribe(state => { + if (this.client.inGameStateChange.getValue() && state && !this.view.getValue()) { + setTimeout(() => this.chatComp.focus(), 100); + } + if (!state) { + this.setView(undefined); + } + }); } - public set view(view: string | undefined) { - this._view = view; + public setView(view: RootView | undefined) { + this.view.next(view); if (view) { this.sound.play(Sound.Focus); - } - else if (this.chatComp) { + } else if (this.chatComp) { this.chatComp.focus(); } } - public get view(): string | undefined { - return this._view; - } - - public get isProduction(): boolean { - return environment.production; - } - - public get isnightly(): boolean { - return environment.nightlyBuild; - } - public reconnect(): void { this.client.reconnect(); } @@ -130,13 +103,14 @@ export class RootComponent implements OnInit, OnDestroy { @HostListener('window:keydown.escape', ['$event']) // @ts-ignore private activate(event: KeyboardEvent): void { - if (!this.view) { + if (!this.view.getValue()) { if (environment.game) { this.client.deactivate(); } else { - this.client.activationStateChange.next(!this.active); + const active = this.client.activationStateChange.getValue(); + this.client.activationStateChange.next(!active); - if (!this.connected) { + if (!this.client.connectionStateChange.getValue()) { this.client.connectionStateChange.next(true); @@ -148,8 +122,8 @@ export class RootComponent implements OnInit, OnDestroy { connected: true, level: 10, cellName: 'Falkreath', - hasInvitedLocalPlayer: true - } + hasInvitedLocalPlayer: true, + }, )); this.client.playerConnectedChange.next(new Player( { @@ -158,8 +132,8 @@ export class RootComponent implements OnInit, OnDestroy { online: true, connected: true, level: 12, - cellName: 'Whiterun' - } + cellName: 'Whiterun', + }, )); this.client.playerConnectedChange.next(new Player( { @@ -168,45 +142,45 @@ export class RootComponent implements OnInit, OnDestroy { online: true, connected: true, level: 69, - cellName: 'Whiterun' - } + cellName: 'Whiterun', + }, )); this.client.isLoadedChange.next(new Player( { id: 1, isLoaded: true, - health: 50 - } + health: 50, + }, )); this.client.isLoadedChange.next(new Player( { id: 2, isLoaded: true, - health: 75 - } + health: 75, + }, )); this.client.isLoadedChange.next(new Player( { id: 3, isLoaded: true, - health: 0 - } + health: 0, + }, )); this.client.partyInfoChange.next(new PartyInfo( { - playerIds: [1,2], - leaderId: 0 - } + playerIds: [1, 2], + leaderId: 0, + }, )); this.client.localPlayerId = 0; - let name = "Banana"; - let message = "Hello Guys"; + let name = 'Banana'; + let message = 'Hello Guys'; let dialogue = true; - this.client.messageReception.next({ name, content: message, dialogue: dialogue }) + this.client.messageReception.next({ name, content: message, dialogue: dialogue }); } } } @@ -219,15 +193,15 @@ export class RootComponent implements OnInit, OnDestroy { @HostListener('window:keydown.f3', ['$event']) // @ts-ignore private testGroup(event: KeyboardEvent): void { - if (!this.view) { + if (!this.view.getValue()) { if (environment.game) { this.client.deactivate(); } else { this.client.partyInfoChange.next(new PartyInfo( { playerIds: [1], - leaderId: 1 - } + leaderId: 1, + }, )); } } @@ -238,7 +212,7 @@ export class RootComponent implements OnInit, OnDestroy { @HostListener('window:keydown.f4', ['$event']) // @ts-ignore private testUnload(event: KeyboardEvent): void { - if (!this.view) { + if (!this.view.getValue()) { if (environment.game) { this.client.deactivate(); } else { @@ -246,8 +220,8 @@ export class RootComponent implements OnInit, OnDestroy { { id: 2, isLoaded: false, - health: 50 - } + health: 50, + }, )); } } diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.html b/Code/skyrim_ui/src/app/components/server-list/server-list.component.html index 8693ccb1f..eae7c999b 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.html +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.html @@ -1,45 +1,81 @@ - + - - + + -
- Loading... -
- -
- No public server available + + +
+ {{ 'COMPONENT.SERVER_LIST.LOADING' | transloco }}
- -
- - - - - - - - - - - - - - - - - - - - - -
Server NamePlayersCountry{{ getClientVersion() }}Favorite
{{ server.name }}{{ server.player_count }}{{ server.country }}{{ getServerVersion(server) }}
+ +
+ {{ 'COMPONENT.SERVER_LIST.NO_SERVERS' | transloco }}
-
- + +
+
+
+
+
+ {{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.NAME' | transloco }} + +
+
+ {{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.PLAYERS' | transloco }} + +
+
+ {{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.COUNTRY' | transloco }} + +
+
{{ clientVersion$ | async }}
+
+ + {{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.FAVORITE' | transloco }} + +
+
+
+
+
+ +
+
+
{{ server.name }}
+
{{ server.player_count }}
+
{{ server.country }}
+
{{ server.shortVersion }}
+
+ +
+
+ +
+
+
+
+
+
+ + diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss b/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss index 8a8c7aa7c..93c337620 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss @@ -1,9 +1,28 @@ +@import "functions/rem"; + +@import "env"; + app-server-list { position: relative; display: block; + .scrollbar-offset { + margin-right: rem($-size-font, 16px); + //overflow-y: scroll; + } + + .serverlist-alternative { + margin: 3%; + display: flex; + justify-content: center; + } + + .example-viewport { + height: calc(60vh - 38px); + width: 100%; + } - .searchListServer { + .search-list-server { display: inline-block; background-color: rgba($color: #292929, $alpha: 0.60); font-size: 0.85rem; @@ -14,7 +33,7 @@ app-server-list { margin-bottom: 1%; } - .buttonsServerList { + .buttons-server-list { float: right; padding: 0.25vw; background-color: #292929; @@ -22,21 +41,44 @@ app-server-list { margin-left: 5%; } - .containerList { + .container-list { overflow: auto; max-height: 60vh; margin-top: 1rem; - .serverslisttable { + .servers-list-table { width: 100%; border-collapse: collapse; + table-layout: fixed; + + .row { + height: 38px; + display: flex; + align-items: center; + width: 100%; + border-bottom: 1px solid grey; + border-collapse: separate; + + :first-child { + flex: 1 1 auto; + } - .listHeader { - position: sticky; - top: 0px; - background-color: #151515; - z-index: 1; + > div { + padding: 5px; + } + + &.header { + + } + } + + td { + padding: 5px; + } + + tr { + display: flex; } th { @@ -55,7 +97,7 @@ app-server-list { } .offline { - background-color: #FF9494 + background-color: #ff9494 } .server-compatible { @@ -66,11 +108,7 @@ app-server-list { color: red; } - #noserv { - margin-top: 3%; - } - - .joinbutton { + .join-button { padding: 0.25vw; background-color: #292929; border-radius: 2px; @@ -87,7 +125,7 @@ app-server-list { } } - .app-server-list-notfavorite { + .app-server-list-not-favorite { text-align: center; color: grey; @@ -97,6 +135,4 @@ app-server-list { } } } - - -} \ No newline at end of file +} diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts index 5146e21ed..8b94a8b53 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts @@ -1,15 +1,17 @@ -import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core'; -import { FormControl } from '@angular/forms'; +import { Component, EventEmitter, HostListener, Output, ViewEncapsulation } from '@angular/core'; import { faStar as farStar } from '@fortawesome/free-regular-svg-icons'; import { faStar as fasStar } from '@fortawesome/free-solid-svg-icons'; -import { forkJoin, interval, Observable, Subscription } from 'rxjs'; -import { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators'; +import { loadingFor } from '@ngneat/loadoff'; +import { FormControl } from '@ngneat/reactive-forms'; +import { BehaviorSubject, combineLatestWith, Observable, ReplaySubject, share, throttleTime } from 'rxjs'; +import { distinctUntilChanged, map, switchMap } from 'rxjs/operators'; import { Server } from '../../models/server'; import { ClientService } from '../../services/client.service'; import { ErrorService } from '../../services/error.service'; import { ServerListService } from '../../services/server-list.service'; import { Sound, SoundService } from '../../services/sound.service'; import { StoreService } from '../../services/store.service'; +import { RootView } from '../root/root.component'; @Component({ @@ -18,29 +20,32 @@ import { StoreService } from '../../services/store.service'; styleUrls: ['./server-list.component.scss'], encapsulation: ViewEncapsulation.None, }) -export class ServerListComponent implements OnInit, OnDestroy { +export class ServerListComponent { - @Output() - public done = new EventEmitter(); - @Output() - public setView = new EventEmitter(); + /* ### ICONS ### */ + readonly fasStar = fasStar; + readonly farStar = farStar; + + loader = loadingFor('serverlist'); + refreshServerlist = new BehaviorSubject(undefined); + sortFunction = new BehaviorSubject<(a: Server, b: Server) => number>(undefined); + favoriteServers = new BehaviorSubject>({}); + serverlist$: Observable<(Server & { isCompatible: boolean; shortVersion: string })[]>; + filteredServerlist$: typeof this.serverlist$; + clientVersion$: Observable; + + formSearch = new FormControl(''); // Server list with search / filter - public serverList: Server[] = []; - public formSearch = new FormControl(''); public isIncreasingPlayerOrder = true; public isIncreasingCountryOrder = true; public isIncreasingNameOrder = true; public isIncreasingFavoriteOrder = true; - public farStar = farStar; - public fasStar = fasStar; - public isLoading = true; - - // All serverList data - private _serverList: Server[] = []; - private searchSubscription: Subscription; - private autoRefreshSubscription: Subscription; + @Output() + public done = new EventEmitter(); + @Output() + public setView = new EventEmitter(); constructor( private errorService: ErrorService, @@ -49,59 +54,81 @@ export class ServerListComponent implements OnInit, OnDestroy { private soundService: SoundService, private storeService: StoreService, ) { - } + this.serverlist$ = this.refreshServerlist + .pipe( + switchMap(() => this.serverListService + .getServerList() + .pipe( + /** + * Removed due performance and ratelimit issue + * + * Temp fix + * https://github.com/tiltedphoques/TiltedEvolution/pull/226 + * + * Long term fix + * https://github.com/tiltedphoques/TiltedEvolution/issues/247 + */ + //switchMap((list) => forkJoin(this.getLocationDataByIp(list))), + this.loader.serverlist.track(), + ), + ), + combineLatestWith(this.favoriteServers), + map(([servers, favorites]) => { + const clientVersion = this.clientService.versionSet.getValue(); + return servers.map(server => { + const shortVersion = this.getServerVersion(server); + return { + ...server, + isFavorite: !!favorites[`${ server.ip }:${ server.port }`], + shortVersion, + isCompatible: shortVersion === clientVersion, + }; + }); + }), + share({ connector: () => new ReplaySubject(1), resetOnRefCountZero: true }), + ); - ngOnInit() { - this.updateServerList(); - this.onSearchSubscription(); - this.onAutoRefreshSubcription(); - } + this.filteredServerlist$ = this.serverlist$ + .pipe( + combineLatestWith( + this.formSearch.value$.pipe( + map(searchPhrase => searchPhrase?.toLowerCase()), + distinctUntilChanged(), + throttleTime(300), + ), + this.sortFunction, + ), + map(([servers, searchPhrase, sortFunction]) => { + if (searchPhrase) { + servers = servers.filter((server: Server) => { + return server.name.toLowerCase().includes(searchPhrase) || server.desc.toLowerCase().includes(searchPhrase); + }); + } + if (sortFunction) { + servers = servers.sort(sortFunction); + } + return servers; + }), + share({ connector: () => new ReplaySubject(1), resetOnRefCountZero: true }), + ); - ngOnDestroy() { - this.searchSubscription.unsubscribe(); - this.autoRefreshSubscription.unsubscribe(); - this.saveFavoriteServerList(); + this.clientVersion$ = this.clientService.versionSet.pipe(map(version => version.split('-')[0])); + + // load favorite servers + const favoriteServerList = JSON.parse(this.storeService.get('favoriteServerList', '[]')); + const favoriteServers: Record = {}; + for (const favoriteServer of favoriteServerList) { + favoriteServers[`${ favoriteServer.ip }:${ favoriteServer.port }`] = favoriteServer; + } + this.favoriteServers.next(favoriteServers); } public cancel(): void { - this.setView.next('connect'); + this.setView.next(RootView.CONNECT); } - public updateServerList() { - - if (!this.isLoading) { - this.saveFavoriteServerList(); - } - - this.serverListService.getServerList().subscribe((list) => { - if (list.length === 0) { - this.isLoading = false; - return; - } - }); - - this.serverListService.getServerList() - .pipe( - /** - * Removed due performance and ratelimit issue - * - * Temp fix - * https://github.com/tiltedphoques/TiltedEvolution/pull/226 - * - * Long term fix - * https://github.com/tiltedphoques/TiltedEvolution/issues/247 - */ - //switchMap((list) => forkJoin(this.getLocationDataByIp(list))), - map((list) => this.markFavoritedServers(list)), - ) - .subscribe((list) => { - this._serverList = list; - this.filterServerList(); - this.sortPlayers(false); - this.sortFavorite(false); - this.sortCountry(false); - this.isLoading = false; - }); + async updateServerList() { + this.refreshServerlist.next(); } private getLocationDataByIp(servers: Server[]): Array> { @@ -112,71 +139,23 @@ export class ServerListComponent implements OnInit, OnDestroy { }); } - public saveFavoriteServerList() { - this.storeService.set('favoriteServerList', JSON.stringify(this.getFavoriteServers())); + async saveFavoriteServerList() { + const favorites = Object.values(this.favoriteServers.getValue()); + this.storeService.set('favoriteServerList', JSON.stringify(favorites)); } - private markFavoritedServers(servers: Server[]): Server[] { - const favoriteServerList = JSON.parse(this.storeService.get('favoriteServerList', '[]')); - - if (favoriteServerList.length > 0) { - servers.map((server: Server) => { - favoriteServerList.forEach(favServer => { - if (server.ip === favServer.ip && server.port === favServer.port) { - server.isFavorite = true; - } else if (server.name === favServer.name) { - server.isFavorite = true; - } - }); - }); + async toggleServerFavorite(server: Server) { + let favorites = this.favoriteServers.getValue(); + favorites = { ...favorites }; + if (favorites[`${ server.ip }:${ server.port }`]) { + delete favorites[`${ server.ip }:${ server.port }`]; + } else { + favorites[`${ server.ip }:${ server.port }`] = { ...server }; } + this.favoriteServers.next(favorites); - return servers; - } - - public toggleServerFavorite(server: Server) { server.isFavorite = !server.isFavorite; - this.saveFavoriteServerList(); - this.filterServerList(); - } - - private onAutoRefreshSubcription() { - let minutes = 5; - this.autoRefreshSubscription = interval(60000 * minutes) - .subscribe((value) => { - this.updateServerList(); - }); - } - - - private filterServerList() { - const search = this.formSearch.value; - - const maybeSearch = search !== '' ? search.toLowerCase() : undefined; - - this.serverList = this._serverList.filter((server: Server) => { - if (maybeSearch && !server.name.toLowerCase().includes(maybeSearch) && !server.desc.toLowerCase().includes(maybeSearch)) { - return false; - } - return true; - }); - - this.sortPlayers(false); - this.sortFavorite(false); - this.sortCountry(false); - } - - - public onSearchSubscription() { - this.searchSubscription = this.formSearch.valueChanges - .pipe( - debounceTime(400), - distinctUntilChanged(), - ) - .subscribe((value) => { - this.filterNameServer(value); - this.filterCountryServer(value); - }); + await this.saveFavoriteServerList(); } public sortPlayers(isIncreasingOrder: boolean) { @@ -185,7 +164,7 @@ export class ServerListComponent implements OnInit, OnDestroy { sort = ServerListComponent.sortIncreasingPlayerCount; } - this.serverList.sort(sort); + this.sortFunction.next(sort); this.isIncreasingPlayerOrder = isIncreasingOrder; } @@ -195,7 +174,7 @@ export class ServerListComponent implements OnInit, OnDestroy { sort = ServerListComponent.sortIncreasingCountryCount; } - this.serverList.sort(sort); + this.sortFunction.next(sort); this.isIncreasingCountryOrder = isIncreasingCountryOrder; } @@ -205,7 +184,7 @@ export class ServerListComponent implements OnInit, OnDestroy { sort = ServerListComponent.sortIncreasingNameCount; } - this.serverList.sort(sort); + this.sortFunction.next(sort); this.isIncreasingNameOrder = isIncreasingNameOrder; } @@ -215,29 +194,19 @@ export class ServerListComponent implements OnInit, OnDestroy { sort = ServerListComponent.sortIncreasingFavoriteCount; } - this.serverList.sort(sort); + this.sortFunction.next(sort); this.isIncreasingFavoriteOrder = isIncreasingFavoriteOrder; } - private filterNameServer(search: string): void { - if (search || search === '') { - search = search.toLowerCase(); - - this.serverList = this._serverList.filter((server: Server) => { - return server.name.toLowerCase().includes(search); - }); - } - } - - private filterCountryServer(search: string): void { - if (search) { - search = search.toLowerCase(); - - this.serverList = this.serverList.concat(this._serverList.filter((server: Server) => { - return server.country.toLowerCase().includes(search); - })); - } - } + // private filterCountryServer(search: string): void { + // if (search) { + // search = search.toLowerCase(); + // + // this.serverList = this.serverList.concat(this._serverList.filter((server: Server) => { + // return server.country.toLowerCase().includes(search); + // })); + // } + // } public connect(server: Server) { this.clientService.connect(server.ip, server.port ? server.port : 10578); @@ -245,30 +214,12 @@ export class ServerListComponent implements OnInit, OnDestroy { this.close(); } - public getFavoriteServers(): Server[] { - return this._serverList.filter(value => { - return value.isFavorite; - }); - } - - public getFavoriteIcon(server: Server) { - return server.isFavorite ? fasStar : farStar; - } - - public getClientVersion() { - return this.clientService.versionSet.value.split('-')[0]; - } - public getServerVersion(server: Server) { return server.version.split('-')[0]; } - public isCompatibleToClient(server: Server) { - return this.getServerVersion(server) === this.getClientVersion(); - } - private close() { - if (this.errorService.error$.value) { + if (this.errorService.error$.getValue()) { this.errorService.removeError(); } else { this.done.next(); @@ -284,12 +235,7 @@ export class ServerListComponent implements OnInit, OnDestroy { } static sortDescendingCountryCount(a: Server, b: Server) { - if (a.country > b.country) { - return -1; - } else if (a.country < b.country) { - return 1; - } - return 0; + return ServerListComponent.sortIncreasingCountryCount(a, b) * -1; } static sortIncreasingCountryCount(a: Server, b: Server) { @@ -302,25 +248,15 @@ export class ServerListComponent implements OnInit, OnDestroy { } static sortDescendingNameCount(a: Server, b: Server) { - if (a.name > b.name) { - return -1; - } else if (a.name < b.name) { - return 1; - } - return 0; + return ServerListComponent.sortIncreasingNameCount(a, b) * -1; } static sortIncreasingNameCount(a: Server, b: Server) { - if (a.name > b.name) { - return 1; - } else if (a.name < b.name) { - return -1; - } - return 0; + return a.name.localeCompare(b.name); } static sortDescendingFavoriteCount(a: Server, b: Server) { - return (a.isFavorite === b.isFavorite) ? 0 : a.isFavorite ? -1 : 1; + return ServerListComponent.sortIncreasingFavoriteCount(a, b) * -1; } static sortIncreasingFavoriteCount(a: Server, b: Server) { diff --git a/Code/skyrim_ui/src/app/components/settings/settings.component.html b/Code/skyrim_ui/src/app/components/settings/settings.component.html index 424afb7b6..6fa7407fd 100644 --- a/Code/skyrim_ui/src/app/components/settings/settings.component.html +++ b/Code/skyrim_ui/src/app/components/settings/settings.component.html @@ -1,49 +1,65 @@
-
+
-

Audio

-
- - -
-
- - -
-
-

Party

-
- - -
-
- - -
-
- -
- - - - - - -
-
-
-

Debug

-
- - +
+

Audio

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

Party

+
+ + +
+
+ + +
+
+ +
+ + + + + +
-
+
-
- + +
+

Debug

+
+ + +
-
\ No newline at end of file +
+
+ +
+ +
diff --git a/Code/skyrim_ui/src/app/components/settings/settings.component.scss b/Code/skyrim_ui/src/app/components/settings/settings.component.scss index c0f111976..782a0c68c 100644 --- a/Code/skyrim_ui/src/app/components/settings/settings.component.scss +++ b/Code/skyrim_ui/src/app/components/settings/settings.component.scss @@ -1,74 +1,93 @@ +@import "env"; + +@import "functions/rem"; + app-settings { - position: relative; - display: block; - - .container { - overflow: auto; - max-height: 60vh; - margin-top: 1rem; - - .settings { - display: flex; - justify-content: space-between; - flex-direction: column; - - .flex-item { - position: relative; - - .radioBtn { - float: right; - - input { - float: none; - display: inline-block; - - &:not(:last-child) { - margin-right: 0.5em; - } - } - - label { - float: none; - position: unset; - display: inline-block; - } - } - - - input { - float: right; - - &.volumeSlider { - padding: 0; - border: none; - } - - } - - label { - float: left; - position: absolute; - bottom: 0; - } - } + position: relative; + display: block; - div:not(:last-child) { - margin-bottom: 0.5rem; - } + .container { + overflow: auto; + max-height: 60vh; + margin-top: 1rem; + padding-right: 15px; - hr { - width: 100%; - } + .settings { + display: flex; + justify-content: space-between; + flex-direction: column; + + .section { + padding-bottom: 15px; + margin-bottom: rem($-size-font, 2px); + border-bottom: rem($-size-font, 2px) solid; + border-image: url("../../../assets/images/separator/single.svg") 3; + display: flex; + justify-content: space-between; + flex-direction: column; + + &:not(:first-child) { + margin-top: 15px; + } + } + + .flex-item { + position: relative; + + .radioBtn { + float: right; + + input { + float: none; + display: inline-block; - h2:first-child { - margin-top: 0; + &:not(:last-child) { + margin-right: 0.5em; } + } + + label { + float: none; + position: unset; + display: inline-block; + } + } + + + input { + float: right; + + &.volumeSlider { + padding: 0; + border: none; + } + } - .buttons { - margin-top: 1rem; - display: flex; - justify-content: center; + label { + float: left; + position: absolute; + bottom: 0; } + } + + div:not(:last-child) { + margin-bottom: 0.5rem; + } + + hr { + width: 100%; + } + + h2:first-child { + margin-top: 0; + } } -} \ No newline at end of file + } + + .actions { + margin-top: 1rem; + display: flex; + justify-content: center; + } +} diff --git a/Code/skyrim_ui/src/app/components/settings/settings.component.ts b/Code/skyrim_ui/src/app/components/settings/settings.component.ts index 0b8d0330c..b4ab8f886 100644 --- a/Code/skyrim_ui/src/app/components/settings/settings.component.ts +++ b/Code/skyrim_ui/src/app/components/settings/settings.component.ts @@ -1,6 +1,8 @@ -import { Component, EventEmitter, HostListener, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core'; +import { Component, EventEmitter, HostListener, OnInit, Output, ViewEncapsulation } from '@angular/core'; import { ClientService } from 'src/app/services/client.service'; import { SettingService } from 'src/app/services/setting.service'; +import { Sound, SoundService } from '../../services/sound.service'; +import { RootView } from '../root/root.component'; @Component({ @@ -9,12 +11,7 @@ import { SettingService } from 'src/app/services/setting.service'; styleUrls: ['./settings.component.scss'], encapsulation: ViewEncapsulation.None, }) -export class SettingsComponent implements OnInit, OnDestroy { - - @Output() - public done = new EventEmitter(); - @Output() - public setView = new EventEmitter(); +export class SettingsComponent implements OnInit { public volume: number; public muted: boolean; @@ -23,16 +20,16 @@ export class SettingsComponent implements OnInit, OnDestroy { public showParty: boolean; public autoHideTime: number; + @Output() public done = new EventEmitter(); + @Output() public setView = new EventEmitter(); + constructor( - private settings: SettingService, - private client: ClientService, + private readonly settings: SettingService, + private readonly client: ClientService, + private readonly sound: SoundService, ) { } - ngOnDestroy(): void { - - } - ngOnInit(): void { this.volume = this.settings.getVolume(); this.muted = this.settings.isAudioMuted(); @@ -42,12 +39,14 @@ export class SettingsComponent implements OnInit, OnDestroy { this.autoHideTime = this.settings.getAutoHideTime(); } - public cancel(): void { - this.done.next(); - } - onMutedChange(event: any) { + if (event.target.checked) { + this.sound.play(Sound.Check); + } this.settings.muteAudio(event.target.checked); + if (!event.target.checked) { + this.sound.play(Sound.Uncheck); + } } onVolumeChange(event: any) { @@ -57,28 +56,33 @@ export class SettingsComponent implements OnInit, OnDestroy { onShowDebugChange(event: any) { this.settings.setDebugShown(event.target.checked); this.client.debugStateChange.next(event.target.checked); + this.sound.play(event.target.checked ? Sound.Check : Sound.Uncheck); } onShowPartyChange(event: any) { this.settings.showParty(event.target.checked); + this.sound.play(event.target.checked ? Sound.Check : Sound.Uncheck); } onAutoHidePartyChange(event: any) { this.settings.autoHideParty(event.target.checked); this.autoHideParty = event.target.checked; + this.sound.play(event.target.checked ? Sound.Check : Sound.Uncheck); } onAutoHideTimeChange(event: any) { this.settings.setAutoHideTime(event.target.value); this.autoHideTime = event.target.value; + this.sound.play(Sound.Check); } public autoHideTimeSelected(number: number): boolean { return this.settings.getAutoHideTime() === number; } - private close() { + close() { this.done.next(); + this.sound.play(Sound.Ok); } @HostListener('window:keydown.escape', ['$event']) diff --git a/Code/skyrim_ui/src/app/components/toggle/toggle.component.ts b/Code/skyrim_ui/src/app/components/toggle/toggle.component.ts index 31c2186c5..6eee109b3 100644 --- a/Code/skyrim_ui/src/app/components/toggle/toggle.component.ts +++ b/Code/skyrim_ui/src/app/components/toggle/toggle.component.ts @@ -1,25 +1,19 @@ -import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, Input, EventEmitter, Output } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; + @Component({ selector: 'app-toggle', templateUrl: './toggle.component.html', styleUrls: ['./toggle.component.scss'], encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, }) -export class ToggleComponent implements OnInit { - @Input('isShow') - public isShow = false; - @Input('title') - public title: String; - - @Output('toggleChange') - public toggleChange = new EventEmitter(); +export class ToggleComponent { - constructor() { } + @Input('isShow') public isShow = false; + @Input('title') public title: String; - ngOnInit() { - } + @Output('toggleChange') public toggleChange = new EventEmitter(); public clickToggle() { this.isShow = !this.isShow; diff --git a/Code/skyrim_ui/src/app/components/window/window.component.ts b/Code/skyrim_ui/src/app/components/window/window.component.ts index 3c1aba67b..4796d9e21 100644 --- a/Code/skyrim_ui/src/app/components/window/window.component.ts +++ b/Code/skyrim_ui/src/app/components/window/window.component.ts @@ -1,14 +1,14 @@ -import { - Component, ViewEncapsulation, Input, HostBinding -} from '@angular/core'; +import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core'; + @Component({ selector: 'app-window', templateUrl: './window.component.html', - styleUrls: [ './window.component.scss' ], - encapsulation: ViewEncapsulation.None + styleUrls: ['./window.component.scss'], + encapsulation: ViewEncapsulation.None, }) export class WindowComponent { + @Input() @HostBinding('attr.data-app-window-border') public border = ''; diff --git a/Code/skyrim_ui/src/app/directives/health.directive.ts b/Code/skyrim_ui/src/app/directives/health.directive.ts index 6f36a4d65..2f4af9cb8 100644 --- a/Code/skyrim_ui/src/app/directives/health.directive.ts +++ b/Code/skyrim_ui/src/app/directives/health.directive.ts @@ -1,16 +1,20 @@ -import { Directive, Input, ElementRef, OnChanges } from '@angular/core'; +import { Directive, ElementRef, Input, OnChanges } from '@angular/core'; + @Directive({ - selector: '[app-health]' + selector: '[app-health]', }) export class HealthDirective implements OnChanges { - @Input('app-health') - health: string; + @Input('app-health') health: string | number; - constructor(private el: ElementRef) { } + constructor( + private readonly el: ElementRef, + ) { + } ngOnChanges() { - this.el.nativeElement.style.width = `${this.health}%`; + this.el.nativeElement.style.width = `${ this.health }%`; } + } diff --git a/Code/skyrim_ui/src/app/models/debug.ts b/Code/skyrim_ui/src/app/models/debug.ts index a7d4136a2..c5270d1c8 100644 --- a/Code/skyrim_ui/src/app/models/debug.ts +++ b/Code/skyrim_ui/src/app/models/debug.ts @@ -1,9 +1,11 @@ export class Debug { - constructor(public numPacketsSent = 0, - public numPacketsReceived = 0, - public RTT = 0, - public packetLoss = 0, - public sentBandwidth = 0, - public receivedBandwidth = 0 - ) {} + constructor( + public numPacketsSent = 0, + public numPacketsReceived = 0, + public RTT = 0, + public packetLoss = 0, + public sentBandwidth = 0, + public receivedBandwidth = 0, + ) { + } } diff --git a/Code/skyrim_ui/src/app/models/server.ts b/Code/skyrim_ui/src/app/models/server.ts index 821714f8b..94ea4f423 100644 --- a/Code/skyrim_ui/src/app/models/server.ts +++ b/Code/skyrim_ui/src/app/models/server.ts @@ -1,4 +1,4 @@ -export class Server { +export interface Server { name: string; desc: string; icon_url: string; @@ -14,39 +14,4 @@ export class Server { countryCode: string; country: string; isFavorite: boolean; - - constructor(options: { - name: string; - desc: string; - icon_url: string; - version: string; - ip: string; - port: number; - tick: number; - player_count: number; - max_player_count: number; - tags: string; - ping: number; - continent: string; - countryCode: string; - country: string; - isFavorite: boolean; - }) { - - this.name = options.name; - this.desc = options.desc; - this.icon_url = options.icon_url; - this.version = options.version; - this.ip = options.ip; - this.port = options.port; - this.tick = options.tick; - this.player_count = options.player_count; - this.max_player_count = options.max_player_count; - this.tags = options.tags; - this.ping = options.ping; - this.continent = options.continent; - this.countryCode = options.countryCode; - this.country = options.country; - this.isFavorite = options.isFavorite; - } } diff --git a/Code/skyrim_ui/src/app/services/asset.service.ts b/Code/skyrim_ui/src/app/services/asset.service.ts index 79c26d5d4..87e49b612 100644 --- a/Code/skyrim_ui/src/app/services/asset.service.ts +++ b/Code/skyrim_ui/src/app/services/asset.service.ts @@ -1,18 +1,16 @@ +import { HttpClient, HttpEventType, HttpRequest } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { HttpClient, HttpRequest, HttpEventType } from '@angular/common/http'; - -import { Observable, Subscription, of, AsyncSubject } from 'rxjs'; -import { filter, map, delay } from 'rxjs/operators'; - +import { AsyncSubject, Observable, of, Subscription } from 'rxjs'; +import { delay, filter, map } from 'rxjs/operators'; import { Asset } from './asset/asset'; -import { TextAsset } from './asset/assets/text.asset'; -import { AudioAsset } from './asset/assets/audio.asset'; import { AssetDecoder } from './asset/asset-decoder'; -import { TextAssetDecoder } from './asset/asset-decoders/text.asset-decoder'; import { AudioAssetDecoder } from './asset/asset-decoders/audio.asset-decoder'; - +import { TextAssetDecoder } from './asset/asset-decoders/text.asset-decoder'; +import { AudioAsset } from './asset/assets/audio.asset'; +import { TextAsset } from './asset/assets/text.asset'; import { SettingService } from './setting.service'; + export { TextAsset, AudioAsset }; /** Current state of the asset. */ @@ -73,16 +71,30 @@ interface StoredAsset> { } /** Asset manager service. */ -@Injectable() +@Injectable({ + providedIn: 'root', +}) export class AssetService { + public progress = new AsyncSubject(); - /** - * Instantiate. - * - * @param http HTTP service. - */ - public constructor(private http: HttpClient, private settingService: SettingService) {} + /** Cached assets. */ + private cache = new Map(); + + /** Stored assets. */ + private assets = new Map>(); + + /** Asset decoders. */ + private decoders = new Map>([ + [Kind.Text, new TextAssetDecoder()], + [Kind.Audio, new AudioAssetDecoder(this.settingService)], + ]); + + public constructor( + private readonly http: HttpClient, + private readonly settingService: SettingService, + ) { + } /** * Load and store a text file. @@ -121,21 +133,19 @@ export class AssetService { const get = new HttpRequest('GET', href, { reportProgress: true, - responseType: 'arraybuffer' + responseType: 'arraybuffer', }); const request = this.http.request(get).pipe(delay(0)).subscribe(event => { if (event.type === HttpEventType.Sent) { this.progress.next({ state: State.Requested, symbol }); - } - else if (event.type === HttpEventType.DownloadProgress) { + } else if (event.type === HttpEventType.DownloadProgress) { this.progress.next({ state: State.Loading, progress: event.total ? event.loaded / event.total : 0, - symbol + symbol, }); - } - else if (event.type === HttpEventType.Response) { + } else if (event.type === HttpEventType.Response) { this.decoders.get(kind)!.decode(event.body!).subscribe(asset => { stored.asset = asset; @@ -212,19 +222,8 @@ export class AssetService { return of(this.assets.get(symbol)).pipe( filter(stored => !!stored), map(stored => stored!.asset!), - filter(asset => !!asset) + filter(asset => !!asset), ); } - /** Cached assets. */ - private cache = new Map(); - - /** Stored assets. */ - private assets = new Map>(); - - /** Asset decoders. */ - private decoders = new Map>([ - [ Kind.Text, new TextAssetDecoder() ], - [ Kind.Audio, new AudioAssetDecoder(this.settingService) ] - ]); } diff --git a/Code/skyrim_ui/src/app/services/asset/destroy.service.ts b/Code/skyrim_ui/src/app/services/asset/destroy.service.ts new file mode 100644 index 000000000..261e08898 --- /dev/null +++ b/Code/skyrim_ui/src/app/services/asset/destroy.service.ts @@ -0,0 +1,14 @@ +import type { OnDestroy } from '@angular/core'; +import { Injectable } from '@angular/core'; +import { Subject } from 'rxjs'; + + +@Injectable() +export class DestroyService extends Subject implements OnDestroy { + + ngOnDestroy(): void { + this.next(); + this.complete(); + } + +} diff --git a/Code/skyrim_ui/src/app/services/client.service.ts b/Code/skyrim_ui/src/app/services/client.service.ts index f179b0deb..e320f82c3 100644 --- a/Code/skyrim_ui/src/app/services/client.service.ts +++ b/Code/skyrim_ui/src/app/services/client.service.ts @@ -20,7 +20,9 @@ export interface Message { } /** Client game service. */ -@Injectable() +@Injectable({ + providedIn: 'root', +}) export class ClientService implements OnDestroy { /** Initialization done. */ public initDone = new AsyncSubject(); @@ -32,7 +34,7 @@ export class ClientService implements OnDestroy { public inGameStateChange = new BehaviorSubject(!environment.game); /** Opening/close menu change. */ - public openingMenuChange = new BehaviorSubject(true); + public openingMenuChange = new BehaviorSubject(false); /** Message reception. */ public messageReception = new ReplaySubject(); @@ -237,7 +239,7 @@ export class ClientService implements OnDestroy { if (environment.game) { skyrimtogether.sendMessage(message); } else { - this.messageReception.next({ name: this.nameChange.value, content: message }); + this.messageReception.next({ name: this.nameChange.getValue(), content: message }); } } @@ -315,7 +317,7 @@ export class ClientService implements OnDestroy { if (environment.game) { skyrimtogether.deactivate(); } else { - this.activationStateChange.next(this.activationStateChange.value); + this.activationStateChange.next(this.activationStateChange.getValue()); } } diff --git a/Code/skyrim_ui/src/app/services/error.service.ts b/Code/skyrim_ui/src/app/services/error.service.ts index e8aaca3e8..5d0b382a1 100644 --- a/Code/skyrim_ui/src/app/services/error.service.ts +++ b/Code/skyrim_ui/src/app/services/error.service.ts @@ -1,15 +1,17 @@ import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; -import { SoundService, Sound } from './sound.service'; +import { Sound, SoundService } from './sound.service'; + @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class ErrorService { - error$ = new BehaviorSubject(""); + error$ = new BehaviorSubject(''); - constructor(private sound: SoundService) { } + constructor(private sound: SoundService) { + } error(message: string) { this.sound.play(Sound.Fail); @@ -18,6 +20,7 @@ export class ErrorService { removeError() { this.sound.play(Sound.Ok); - this.error$.next(""); + this.error$.next(''); } + } diff --git a/Code/skyrim_ui/src/app/services/group.service.ts b/Code/skyrim_ui/src/app/services/group.service.ts index 68553d1de..9406611b1 100644 --- a/Code/skyrim_ui/src/app/services/group.service.ts +++ b/Code/skyrim_ui/src/app/services/group.service.ts @@ -1,16 +1,18 @@ import { Injectable, OnDestroy } from '@angular/core'; +import { BehaviorSubject, Observable, of, pluck, Subscription } from 'rxjs'; +import { filter, map } from 'rxjs/operators'; import { Group } from '../models/group'; -import { BehaviorSubject, Subscription, Observable } from 'rxjs'; +import { PartyInfo } from '../models/party-info'; import { Player } from '../models/player'; import { ClientService } from './client.service'; import { ErrorService } from './error.service'; -import { Sound, SoundService } from './sound.service'; -import { PartyInfo } from '../models/party-info'; -import { PlayerListService } from './player-list.service'; import { LoadingService } from './loading.service'; +import { PlayerListService } from './player-list.service'; +import { Sound, SoundService } from './sound.service'; + @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class GroupService implements OnDestroy { @@ -28,11 +30,13 @@ export class GroupService implements OnDestroy { private isConnect = false; - constructor(private errorService: ErrorService, - private soundService: SoundService, - private clientService: ClientService, - private playerListService: PlayerListService, - private loadingService: LoadingService) { + constructor( + private readonly errorService: ErrorService, + private readonly soundService: SoundService, + private readonly clientService: ClientService, + private readonly playerListService: PlayerListService, + private readonly loadingService: LoadingService, + ) { this.onDebug(); this.onConnectionStateChanged(); this.subscribeChangeHealth(); @@ -71,9 +75,8 @@ export class GroupService implements OnDestroy { this.isConnect = connect; if (connect) { - this.createGroup(this.group.value); - } - else { + this.createGroup(this.group.getValue()); + } else { this.group.next(undefined); } @@ -84,7 +87,7 @@ export class GroupService implements OnDestroy { private subscribeChangeHealth() { this.userHealthSubscription = this.clientService.healthChange.subscribe((player: Player) => { - const group = this.group.value; + const group = this.group.getValue(); if (group) { const foundPlayer = this.playerListService.getPlayerById(player.id); @@ -94,13 +97,13 @@ export class GroupService implements OnDestroy { this.updateGroup(); } } - }) + }); } private onPartyInfo() { this.partyInfoSubscription = this.clientService.partyInfoChange.subscribe((partyInfo: PartyInfo) => { - - const group = this.createGroup(this.group.value); + + const group = this.createGroup(this.group.getValue()); const playerList = this.playerListService.getPlayerList(); if (group && playerList) { @@ -123,12 +126,12 @@ export class GroupService implements OnDestroy { this.updateGroup(); this.playerListService.updatePlayerList(); } - }) + }); } private onPartyLeft() { this.partyLeftSubscription = this.clientService.partyLeftChange.subscribe(() => { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { this.playerListService.resetHasBeenInvitedFlags(); @@ -139,12 +142,12 @@ export class GroupService implements OnDestroy { this.updateGroup(); } - }) + }); } private onPlayerDisconnected() { this.playerDisconnectedSubscription = this.clientService.playerDisconnectedChange.subscribe((player: Player) => { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { @@ -157,14 +160,14 @@ export class GroupService implements OnDestroy { private onLevelChange() { this.levelSubscription = this.clientService.levelChange.subscribe((player: Player) => { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { const p = this.playerListService.getPlayerById(player.id); if (p) { p.level = player.level; - this.clientService.messageReception.next({content: `${p.name} has reached level ${player.level}.`}); + this.clientService.messageReception.next({ content: `${ p.name } has reached level ${ player.level }.` }); } } }); @@ -172,7 +175,7 @@ export class GroupService implements OnDestroy { private onCellChange() { this.cellSubscription = this.clientService.cellChange.subscribe((player: Player) => { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { const p = this.playerListService.getPlayerById(player.id); @@ -180,12 +183,12 @@ export class GroupService implements OnDestroy { p.cellName = player.cellName; } } - }) + }); } private onLoadedChange() { this.loadedSubscription = this.clientService.isLoadedChange.subscribe((player: Player) => { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { const p = this.playerListService.getPlayerById(player.id); @@ -199,20 +202,20 @@ export class GroupService implements OnDestroy { public launch() { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { this.soundService.play(Sound.Focus); this.loadingService.setLoading(true); this.clientService.launchParty(); - + group.isEnabled = true; this.updateGroup(); } } public leave() { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { if (!group.isEnabled) { @@ -236,26 +239,26 @@ export class GroupService implements OnDestroy { } public accept(inviterId: number) { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { if (group.owner || group.members.length > 0) { - this.errorService.error("You are already in a group. To join another group, please leave your current group."); + this.errorService.error('You are already in a group. To join another group, please leave your current group.'); return; } this.soundService.play(Sound.Ok); - + this.clientService.acceptPartyInvite(inviterId); } } public kick(playerId: number) { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { if (group.owner !== this.clientService.localPlayerId) { - this.errorService.error("You cannot kick other members as you are not the party leader."); + this.errorService.error('You cannot kick other members as you are not the party leader.'); return; } @@ -266,11 +269,11 @@ export class GroupService implements OnDestroy { } public changeLeader(playerId: number) { - const group = this.createGroup(this.group.value); + const group = this.createGroup(this.group.getValue()); if (group) { if (group.owner !== this.clientService.localPlayerId) { - this.errorService.error("You cannot make another member the leader as you are not the party leader."); + this.errorService.error('You cannot make another member the leader as you are not the party leader.'); return; } @@ -280,20 +283,46 @@ export class GroupService implements OnDestroy { } } + public selectMembers(): Observable { + if (this.group) { + return this.playerListService.playerList + .asObservable() + .pipe( + filter(playerlist => !!playerlist), + pluck('players'), + map(players => players.filter(player => this.group.getValue().members.includes(player.id))), + ); + } else { + return of([]); + } + } + public getMembers(): Array { if (this.group) { - return this.playerListService.getPlayerList().players.filter(player => this.group.value.members.includes(player.id)); + return this.playerListService.getPlayerList().players.filter(player => this.group.getValue().members.includes(player.id)); } else { return []; } } + public selectMembersLength(excludeLocal: boolean): Observable { + return this.selectMembers() + .pipe( + map(members => { + if (excludeLocal) { + members = members.filter(member => member !== this.clientService.localPlayerId); + } + return members.length; + }), + ); + } + public getMembersLength(excludeLocal: boolean): number { - if (!this.group.value) { + if (!this.group.getValue()) { return 0; } - - let members = this.group.value.members; + + let members = this.group.getValue().members; if (excludeLocal) { members = members.filter(member => member !== this.clientService.localPlayerId); } @@ -302,11 +331,11 @@ export class GroupService implements OnDestroy { } public isPartyEnabled(): boolean { - return (this.group.value ? this.group.value.isEnabled : false); + return (this.group.value ? this.group.getValue().isEnabled : false); } private updateGroup() { - this.group.next(this.group.value); + this.group.next(this.group.getValue()); } private createGroup(group: Group | undefined) { @@ -314,21 +343,21 @@ export class GroupService implements OnDestroy { group = new Group(); this.group.next(group); - if (!this.clientService.connectionStateChange.value) { + if (!this.clientService.connectionStateChange.getValue()) { this.soundService.play(Sound.Success); } } - return this.group.value; + return this.group.getValue(); } public getLeaderName(): string { - const group = this.group.value - if(group) { + const group = this.group.getValue(); + if (group) { let player = this.playerListService.getPlayerById(group.owner); if (player) { return player.name; } } - return ""; + return ''; } } diff --git a/Code/skyrim_ui/src/app/services/loading.service.ts b/Code/skyrim_ui/src/app/services/loading.service.ts index 606f53f28..70a9bbfd4 100644 --- a/Code/skyrim_ui/src/app/services/loading.service.ts +++ b/Code/skyrim_ui/src/app/services/loading.service.ts @@ -1,15 +1,17 @@ import { Injectable } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { SoundService, Sound } from './sound.service'; +import { Sound, SoundService } from './sound.service'; + @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class LoadingService { private isLoading = new BehaviorSubject(false); - constructor(private soundService: SoundService) { } + constructor(private soundService: SoundService) { + } public setLoading(isLoading: boolean): void { this.isLoading.next(isLoading); @@ -22,4 +24,5 @@ export class LoadingService { public getLoading(): Observable { return this.isLoading.asObservable(); } + } diff --git a/Code/skyrim_ui/src/app/services/mock-client.service.ts b/Code/skyrim_ui/src/app/services/mock-client.service.ts index 6370a1a9c..ceb4dba59 100644 --- a/Code/skyrim_ui/src/app/services/mock-client.service.ts +++ b/Code/skyrim_ui/src/app/services/mock-client.service.ts @@ -3,6 +3,7 @@ import { Subscription } from 'rxjs'; import { PartyInfo } from '../models/party-info'; import { ClientService } from './client.service'; + // TODO: this is bad. We shouldn't take different paths to accommodate for // mock testing. Instead, the skyrimtogether global should be mockable. @Injectable({ @@ -21,7 +22,7 @@ export class MockClientService implements OnDestroy { private partyLeaderSubscription: Subscription; constructor( - private clientService: ClientService, + private readonly clientService: ClientService, ) { this.partyInfo = new PartyInfo({ playerIds: [], @@ -95,4 +96,5 @@ export class MockClientService implements OnDestroy { this.clientService.onPartyInfo(this.partyInfo.playerIds, this.partyInfo.leaderId); }); } + } diff --git a/Code/skyrim_ui/src/app/services/player-list.service.ts b/Code/skyrim_ui/src/app/services/player-list.service.ts index 5b8d7a91e..54e2f40e3 100644 --- a/Code/skyrim_ui/src/app/services/player-list.service.ts +++ b/Code/skyrim_ui/src/app/services/player-list.service.ts @@ -3,10 +3,10 @@ import { BehaviorSubject, Subscription } from 'rxjs'; import { Player } from '../models/player'; import { PlayerList } from '../models/player-list'; import { ClientService } from './client.service'; -import { MockClientService } from './mock-client.service'; + @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class PlayerListService { @@ -16,20 +16,20 @@ export class PlayerListService { private connectionSubscription: Subscription; private playerConnectedSubscription: Subscription; private playerDisconnectedSubscription: Subscription; + private memberKickedSubscription: Subscription; private cellSubscription: Subscription; private partyInviteReceivedSubscription: Subscription; private isConnect = false; - constructor(private clientService: ClientService, - // WARNING: do not remove this service dependency. - // Due to angular lazy loading, it needs to be instantiated somewhere. - // There is surely a better solution, so if you know any, please do refactor. - private mockClientService: MockClientService) { + constructor( + private clientService: ClientService, + ) { this.onDebug(); this.onConnectionStateChanged(); this.onPlayerConnected(); this.onPlayerDisconnected(); + this.onMemberKicked(); this.onCellChange(); this.onPartyInviteReceived(); } @@ -71,7 +71,7 @@ export class PlayerListService { this.playerList.next(playerList); } - }) + }); } private onPlayerDisconnected() { @@ -87,6 +87,14 @@ export class PlayerListService { }); } + private onMemberKicked() { + this.memberKickedSubscription = this.clientService.memberKickedChange.subscribe((playerId: number) => { + const playerList = this.getPlayerList(); + const players = playerList.players.find(player => player.id !== playerId); + players.hasBeenInvited = false; + }); + } + private onCellChange() { this.cellSubscription = this.clientService.cellChange.subscribe((player: Player) => { const playerList = this.getPlayerList(); @@ -97,7 +105,7 @@ export class PlayerListService { p.cellName = player.cellName; } } - }) + }); } private onPartyInviteReceived() { @@ -109,9 +117,7 @@ export class PlayerListService { this.playerList.next(playerList); } - - - }) + }); } public getLocalPlayer(): Player { @@ -120,7 +126,7 @@ export class PlayerListService { } public getPlayerList() { - return this.createPlayerList(this.playerList.value); + return this.createPlayerList(this.playerList.getValue()); } public getListLength(): number { @@ -132,11 +138,11 @@ export class PlayerListService { playerList = new PlayerList(); this.playerList.next(playerList); } - return this.playerList.value; + return this.playerList.getValue(); } public updatePlayerList() { - this.playerList.next(this.playerList.value); + this.playerList.next(this.playerList.getValue()); } public sendPartyInvite(inviteeId: number) { @@ -163,7 +169,7 @@ export class PlayerListService { } } - public getPlayerById(playerId: number) : Player { + public getPlayerById(playerId: number): Player { return this.getPlayerList().players.find(player => player.id === playerId); } @@ -178,4 +184,5 @@ export class PlayerListService { this.updatePlayerList(); } } -} \ No newline at end of file + +} diff --git a/Code/skyrim_ui/src/app/services/popup-notification.service.ts b/Code/skyrim_ui/src/app/services/popup-notification.service.ts index 705ee5c95..b533320d4 100644 --- a/Code/skyrim_ui/src/app/services/popup-notification.service.ts +++ b/Code/skyrim_ui/src/app/services/popup-notification.service.ts @@ -1,18 +1,22 @@ import { Injectable, OnDestroy } from '@angular/core'; -import { Subject, timer, Subscription, Observable } from 'rxjs'; -import { PopupNotification, NotificationType } from '../models/popup-notification'; +import { Observable, Subject, Subscription, timer } from 'rxjs'; import { Player } from '../models/player'; -import { SoundService, Sound } from './sound.service'; +import { NotificationType, PopupNotification } from '../models/popup-notification'; +import { Sound, SoundService } from './sound.service'; + @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class PopupNotificationService implements OnDestroy { private messageSubject = new Subject(); private timerSubscription: Subscription; - constructor(private soundService: SoundService) { } + constructor( + private readonly soundService: SoundService, + ) { + } ngOnDestroy() { if (this.timerSubscription) { @@ -29,18 +33,19 @@ export class PopupNotificationService implements OnDestroy { this.timerSubscription.unsubscribe(); } - this.messageSubject.next({message: msg, type: typeNotification, player: player}); + this.messageSubject.next({ message: msg, type: typeNotification, player: player }); this.soundService.play(Sound.Focus); const source = timer(3000); this.timerSubscription = source.subscribe(() => { - this.messageSubject.next({message: "", type: NotificationType.Connection, player: undefined}); - }) + this.messageSubject.next({ message: '', type: NotificationType.Connection, player: undefined }); + }); } public clearMessage() { - this.messageSubject.next({message: ""}); + this.messageSubject.next({ message: '' }); } + } diff --git a/Code/skyrim_ui/src/app/services/server-list.service.ts b/Code/skyrim_ui/src/app/services/server-list.service.ts index bd6be2f41..a39a31b70 100644 --- a/Code/skyrim_ui/src/app/services/server-list.service.ts +++ b/Code/skyrim_ui/src/app/services/server-list.service.ts @@ -1,34 +1,38 @@ -import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; -import { environment } from '../../environments/environment'; +import { Injectable } from '@angular/core'; import { Observable, of } from 'rxjs'; import { map, tap } from 'rxjs/operators'; -import { Server } from '../models/server'; +import { environment } from '../../environments/environment'; import { GeoLocation } from '../models/geo-location'; +import { Server } from '../models/server'; + @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class ServerListService { - constructor(private http: HttpClient) { } + constructor( + private readonly http: HttpClient, + ) { + } public getServerList(): Observable { - return this.http.get(`${environment.urlProtocol}://${environment.url}/list`) + return this.http.get(`${ environment.urlProtocol }://${ environment.url }/list`) .pipe( map((data: any) => data.servers), ); } public getInformationForIp(ip: string): Observable { - const cached = localStorage.getItem(`ip-cache:${ip}`); + const cached = localStorage.getItem(`ip-cache:${ ip }`); if (cached) { return of(JSON.parse(cached)); } - return this.http.get(`http://ip-api.com/json/${ip}?fields=continent,countryCode,country`).pipe( - tap((response) => localStorage.setItem(`ip-cache:${ip}`, JSON.stringify(response))), + return this.http.get(`http://ip-api.com/json/${ ip }?fields=continent,countryCode,country`).pipe( + tap((response) => localStorage.setItem(`ip-cache:${ ip }`, JSON.stringify(response))), ); } diff --git a/Code/skyrim_ui/src/app/services/setting.service.ts b/Code/skyrim_ui/src/app/services/setting.service.ts index 90d84be71..8d15d7dc5 100644 --- a/Code/skyrim_ui/src/app/services/setting.service.ts +++ b/Code/skyrim_ui/src/app/services/setting.service.ts @@ -2,56 +2,67 @@ import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { StoreService } from './store.service'; + @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class SettingService { - public partyShownChange = new BehaviorSubject(this.isPartyShown()); - public partyAutoHideChange = new BehaviorSubject(this.isPartyAutoHidden()); - - constructor(private storeService: StoreService) {} - - public setVolume(volume: number) { - this.storeService.set('audio_volume', volume); - } - public getVolume(): number { - return JSON.parse(this.storeService.get('audio_volume', 0.5)); - } - - public muteAudio(muted: boolean) { - this.storeService.set('audio_muted', muted); - } - public isAudioMuted(): boolean { - return JSON.parse(this.storeService.get('audio_muted', false)); - } - - public setDebugShown(shown: boolean) { - this.storeService.set('debug_isShown', shown); - } - public isDebugShown(): boolean { - return JSON.parse(this.storeService.get('debug_isShown', false)); - } - - public showParty(showParty: boolean) { - this.storeService.set('party_isShown', showParty); - this.partyShownChange.next(showParty); - } - public isPartyShown(): boolean { - return JSON.parse(this.storeService.get('party_isShown', true)); - } - public autoHideParty(autoHideParty: boolean) { - this.storeService.set('party_autoHide', autoHideParty); - this.partyAutoHideChange.next(autoHideParty); - } - public isPartyAutoHidden() : boolean { - return JSON.parse(this.storeService.get('party_autoHide', false)); - } - - public setAutoHideTime(time: number) { - this.storeService.set('party_autoHideTime', time); - } - public getAutoHideTime(): number { - return JSON.parse(this.storeService.get('party_autoHideTime', 3)); - } -} \ No newline at end of file + public partyShownChange = new BehaviorSubject(this.isPartyShown()); + public partyAutoHideChange = new BehaviorSubject(this.isPartyAutoHidden()); + + constructor( + private readonly storeService: StoreService, + ) { + } + + public setVolume(volume: number) { + this.storeService.set('audio_volume', volume); + } + + public getVolume(): number { + return JSON.parse(this.storeService.get('audio_volume', 0.5)); + } + + public muteAudio(muted: boolean) { + this.storeService.set('audio_muted', muted); + } + + public isAudioMuted(): boolean { + return JSON.parse(this.storeService.get('audio_muted', false)); + } + + public setDebugShown(shown: boolean) { + this.storeService.set('debug_isShown', shown); + } + + public isDebugShown(): boolean { + return JSON.parse(this.storeService.get('debug_isShown', false)); + } + + public showParty(showParty: boolean) { + this.storeService.set('party_isShown', showParty); + this.partyShownChange.next(showParty); + } + + public isPartyShown(): boolean { + return JSON.parse(this.storeService.get('party_isShown', true)); + } + + public autoHideParty(autoHideParty: boolean) { + this.storeService.set('party_autoHide', autoHideParty); + this.partyAutoHideChange.next(autoHideParty); + } + + public isPartyAutoHidden(): boolean { + return JSON.parse(this.storeService.get('party_autoHide', false)); + } + + public setAutoHideTime(time: number) { + this.storeService.set('party_autoHideTime', time); + } + + public getAutoHideTime(): number { + return JSON.parse(this.storeService.get('party_autoHideTime', 3)); + } +} diff --git a/Code/skyrim_ui/src/app/services/sound.service.ts b/Code/skyrim_ui/src/app/services/sound.service.ts index 91a807885..95f7bde47 100644 --- a/Code/skyrim_ui/src/app/services/sound.service.ts +++ b/Code/skyrim_ui/src/app/services/sound.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; +import { AssetService, AudioAsset, Kind } from './asset.service'; -import { AssetService, Kind, AudioAsset } from './asset.service'; export enum Sound { /** Cancellation. */ @@ -32,16 +32,20 @@ export enum Sound { } /** Sound player service. */ -@Injectable() +@Injectable({ + providedIn: 'root', +}) export class SoundService { /** * Instantiate. * * @param asset Asset service. */ - public constructor(private asset: AssetService) { - this.sounds = new Map(Object.entries(Sound).map((entry): [ string, Symbol ] => { - return [ entry[1], asset.load(Kind.Audio, `assets/sounds/${entry[1]}.wav`) ]; + public constructor( + private readonly asset: AssetService, + ) { + this.sounds = new Map(Object.entries(Sound).map((entry): [string, Symbol] => { + return [entry[1], asset.load(Kind.Audio, `assets/sounds/${ entry[1] }.wav`)]; })); } @@ -50,7 +54,7 @@ export class SoundService { * * @param sound Audio file to play. */ - public play(sound: string): void { + public play(sound: string | Sound): void { this.asset.get(this.sounds.get(sound)!).subscribe(asset => asset.play()); } diff --git a/Code/skyrim_ui/src/app/services/store.service.ts b/Code/skyrim_ui/src/app/services/store.service.ts index 4f2214d8e..3bc68b35b 100644 --- a/Code/skyrim_ui/src/app/services/store.service.ts +++ b/Code/skyrim_ui/src/app/services/store.service.ts @@ -1,19 +1,18 @@ import { Injectable } from '@angular/core'; import { environment } from '../../environments/environment'; + @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class StoreService { - constructor() { } - public get(key: string, valueIfNull: any): any { const value = localStorage.getItem(key); if (value !== null) { if (!environment.game || environment.nightlyBuild) { - console.log(`Value : ${key} : ${value}`); + console.log(`Value : ${ key } : ${ value }`); } return value; } @@ -24,4 +23,9 @@ export class StoreService { public set(key: string, value: any): void { localStorage.setItem(key, value); } + + public remove(key: string): void { + localStorage.removeItem(key); + } + } diff --git a/Code/skyrim_ui/src/assets/.gitkeep b/Code/skyrim_ui/src/assets/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/Code/skyrim_ui/src/environments/environment.browser.ts b/Code/skyrim_ui/src/environments/environment.browser.ts index 5a948c6bd..101c555ab 100644 --- a/Code/skyrim_ui/src/environments/environment.browser.ts +++ b/Code/skyrim_ui/src/environments/environment.browser.ts @@ -1,10 +1,24 @@ +import { APP_INITIALIZER, Provider } from '@angular/core'; +import { MockClientService } from '../app/services/mock-client.service'; + + export const environment = { production: false, nightlyBuild: true, game: false, - urlProtocol: "http", - url: "localhost:4200", + urlProtocol: 'http', + url: 'localhost:4200', intervalPingWebSocket: 5, // seconds chatMessageLengthLimit: 512, - nbReconnectionAttempts: 5 + nbReconnectionAttempts: 5, + + providers: [ + { + provide: APP_INITIALIZER, + useFactory: (mockClientService: MockClientService) => () => undefined, + deps: [MockClientService], + multi: true, + }, + MockClientService, + ] as Provider[], }; diff --git a/Code/skyrim_ui/src/environments/environment.nightly.ts b/Code/skyrim_ui/src/environments/environment.nightly.ts index e9c1b5dbf..f575f303e 100644 --- a/Code/skyrim_ui/src/environments/environment.nightly.ts +++ b/Code/skyrim_ui/src/environments/environment.nightly.ts @@ -1,10 +1,15 @@ +import { Provider } from '@angular/core'; + + export const environment = { production: true, nightlyBuild: true, game: true, - urlProtocol: "https", - url: "skyrim-reborn-list.skyrim-together.com", + urlProtocol: 'https', + url: 'skyrim-reborn-list.skyrim-together.com', intervalPingWebSocket: 5, // seconds chatMessageLengthLimit: 512, - nbReconnectionAttempts: 5 + nbReconnectionAttempts: 5, + + providers: [] as Provider[], }; diff --git a/Code/skyrim_ui/src/environments/environment.prod.ts b/Code/skyrim_ui/src/environments/environment.prod.ts index a646e956e..71b3b6489 100644 --- a/Code/skyrim_ui/src/environments/environment.prod.ts +++ b/Code/skyrim_ui/src/environments/environment.prod.ts @@ -1,10 +1,15 @@ +import { Provider } from '@angular/core'; + + export const environment = { production: true, nightlyBuild: false, game: true, - urlProtocol: "https", - url: "skyrim-reborn-list.skyrim-together.com", + urlProtocol: 'https', + url: 'skyrim-reborn-list.skyrim-together.com', intervalPingWebSocket: 5, // seconds chatMessageLengthLimit: 512, - nbReconnectionAttempts: 5 + nbReconnectionAttempts: 5, + + providers: [] as Provider[], }; diff --git a/Code/skyrim_ui/src/environments/environment.ts b/Code/skyrim_ui/src/environments/environment.ts index 0680fab63..0a1e95191 100644 --- a/Code/skyrim_ui/src/environments/environment.ts +++ b/Code/skyrim_ui/src/environments/environment.ts @@ -3,13 +3,18 @@ // `ng build --env=prod` then `environment.prod.ts` will be used instead. // The list of which env maps to which file can be found in `.angular-cli.json`. +import { Provider } from '@angular/core'; + + export const environment = { production: false, nightlyBuild: false, game: true, - urlProtocol: "https", - url: "skyrim-reborn-list.skyrim-together.com", + urlProtocol: 'https', + url: 'skyrim-reborn-list.skyrim-together.com', intervalPingWebSocket: 5, // seconds chatMessageLengthLimit: 512, - nbReconnectionAttempts: 5 + nbReconnectionAttempts: 5, + + providers: [] as Provider[], }; diff --git a/Code/skyrim_ui/src/styles.scss b/Code/skyrim_ui/src/styles.scss index 3b7fe6a5b..7af6ab673 100644 --- a/Code/skyrim_ui/src/styles.scss +++ b/Code/skyrim_ui/src/styles.scss @@ -249,6 +249,5 @@ body { body { margin: 0; - font-family: "futura-condensed-medium", "Roboto Condensed", "Trebutchet MS", "Tahoma", "Geneva", - "Verdana", "sans-serif"; + font-family: $-font-default; } diff --git a/Code/skyrim_ui/tslint.json b/Code/skyrim_ui/tslint.json deleted file mode 100644 index 67bcdea5d..000000000 --- a/Code/skyrim_ui/tslint.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "extends": "tslint:recommended", - "rules": { - "align": { - "options": [ - "parameters", - "statements" - ] - }, - "array-type": false, - "arrow-return-shorthand": true, - "curly": true, - "deprecation": { - "severity": "warning" - }, - "component-class-suffix": true, - "contextual-lifecycle": true, - "directive-class-suffix": true, - "directive-selector": [ - true, - "attribute", - "app", - "camelCase" - ], - "component-selector": [ - true, - "element", - "app", - "kebab-case" - ], - "eofline": true, - "import-blacklist": [ - true, - "rxjs/Rx" - ], - "import-spacing": true, - "indent": { - "options": [ - "spaces" - ] - }, - "max-classes-per-file": false, - "max-line-length": [ - true, - 140 - ], - "member-ordering": [ - true, - { - "order": [ - "static-field", - "instance-field", - "static-method", - "instance-method" - ] - } - ], - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-empty": false, - "no-inferrable-types": [ - true, - "ignore-params" - ], - "no-non-null-assertion": true, - "no-redundant-jsdoc": true, - "no-switch-case-fall-through": true, - "no-var-requires": false, - "object-literal-key-quotes": [ - true, - "as-needed" - ], - "quotemark": [ - true, - "single" - ], - "semicolon": { - "options": [ - "always" - ] - }, - "space-before-function-paren": { - "options": { - "anonymous": "never", - "asyncArrow": "always", - "constructor": "never", - "method": "never", - "named": "never" - } - }, - "typedef": [ - true, - "call-signature" - ], - "typedef-whitespace": { - "options": [ - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - }, - { - "call-signature": "onespace", - "index-signature": "onespace", - "parameter": "onespace", - "property-declaration": "onespace", - "variable-declaration": "onespace" - } - ] - }, - "variable-name": { - "options": [ - "ban-keywords", - "check-format", - "allow-pascal-case" - ] - }, - "whitespace": { - "options": [ - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type", - "check-typecast" - ] - }, - "no-conflicting-lifecycle": true, - "no-host-metadata-property": true, - "no-input-rename": true, - "no-inputs-metadata-property": true, - "no-output-native": true, - "no-output-on-prefix": true, - "no-output-rename": true, - "no-outputs-metadata-property": true, - "template-banana-in-box": true, - "template-no-negated-async": true, - "use-lifecycle-interface": true, - "use-pipe-transform-interface": true - }, - "rulesDirectory": [ - "codelyzer" - ] -} \ No newline at end of file From 139bdabbbddbb6e1ffd1284b98960238a6d3c2c6 Mon Sep 17 00:00:00 2001 From: Sebastian Comans Date: Mon, 11 Jul 2022 13:14:07 +0200 Subject: [PATCH 05/47] use transloco to show UI texts --- Code/skyrim_ui/angular.json | 17 ++- Code/skyrim_ui/package.json | 1 + Code/skyrim_ui/pnpm-lock.yaml | 119 ++++++---------- Code/skyrim_ui/src/app/app.module.ts | 2 + .../app/components/chat/chat.component.html | 30 ++++- .../src/app/components/chat/chat.component.ts | 16 ++- .../components/connect/connect.component.html | 38 ++++-- .../components/connect/connect.component.ts | 26 ++-- .../disconnect/disconnect.component.html | 6 +- .../app/components/error/error.component.html | 4 +- .../app/components/group/group.component.ts | 8 +- .../notification-popup.component.ts | 6 +- .../notifications.component.html | 2 +- .../notifications/notifications.component.ts | 19 ++- .../party-menu/party-menu.component.html | 39 +++--- .../player-list/player-list.component.html | 10 +- .../player-manager.component.html | 8 +- .../app/components/root/root.component.html | 12 +- .../src/app/components/root/root.component.ts | 2 +- .../server-list/server-list.component.scss | 2 +- .../settings/settings.component.html | 28 ++-- .../src/app/services/client.service.ts | 22 ++- .../services/{asset => }/destroy.service.ts | 0 .../src/app/services/group.service.ts | 32 +++-- .../src/app/transloco-root.module.ts | 39 ++++++ Code/skyrim_ui/src/assets/i18n/en.json | 127 ++++++++++++++++++ Code/skyrim_ui/src/assets/i18n/overwrite.json | 3 + Code/skyrim_ui/transloco.config.js | 5 + 28 files changed, 433 insertions(+), 190 deletions(-) rename Code/skyrim_ui/src/app/services/{asset => }/destroy.service.ts (100%) create mode 100644 Code/skyrim_ui/src/app/transloco-root.module.ts create mode 100644 Code/skyrim_ui/src/assets/i18n/en.json create mode 100644 Code/skyrim_ui/src/assets/i18n/overwrite.json create mode 100644 Code/skyrim_ui/transloco.config.js diff --git a/Code/skyrim_ui/angular.json b/Code/skyrim_ui/angular.json index 4746a0d49..4366e6277 100644 --- a/Code/skyrim_ui/angular.json +++ b/Code/skyrim_ui/angular.json @@ -31,12 +31,16 @@ "aot": true, "assets": [ "src/favicon.ico", - "src/assets/sounds/" + "src/assets/sounds/", + "src/assets/i18n/" ], "styles": [ "src/styles.scss" ], - "scripts": [] + "scripts": [], + "allowedCommonJsDependencies": [ + "flat" + ] }, "configurations": { "production": { @@ -153,6 +157,11 @@ } } } - }}, - "defaultProject": "skyrim-together-ui" + } + }, + "defaultProject": "skyrim-together-ui", + "cli": { + "packageManager": "pnpm", + "analytics": false + } } diff --git a/Code/skyrim_ui/package.json b/Code/skyrim_ui/package.json index cc697ea26..57f37e42c 100644 --- a/Code/skyrim_ui/package.json +++ b/Code/skyrim_ui/package.json @@ -28,6 +28,7 @@ "@fortawesome/free-solid-svg-icons": "^6.1.1", "@ngneat/loadoff": "^2.1.0", "@ngneat/reactive-forms": "^5.0.0", + "@ngneat/transloco": "4.1.0", "rxjs": "~7.5.5", "tslib": "^2.4.0", "zone.js": "~0.11.6" diff --git a/Code/skyrim_ui/pnpm-lock.yaml b/Code/skyrim_ui/pnpm-lock.yaml index 07152bbdf..e6a13204c 100644 --- a/Code/skyrim_ui/pnpm-lock.yaml +++ b/Code/skyrim_ui/pnpm-lock.yaml @@ -25,6 +25,7 @@ specifiers: '@fortawesome/free-solid-svg-icons': ^6.1.1 '@ngneat/loadoff': ^2.1.0 '@ngneat/reactive-forms': ^5.0.0 + '@ngneat/transloco': 4.1.0 '@types/jasmine': ^3.6.4 '@types/jasminewd2': ^2.0.10 '@types/node': 16.x.x @@ -64,6 +65,7 @@ dependencies: '@fortawesome/free-solid-svg-icons': 6.1.1 '@ngneat/loadoff': 2.1.0 '@ngneat/reactive-forms': 5.0.0_@angular+forms@14.0.5 + '@ngneat/transloco': 4.1.0_dzujbj7drp6g2oxeynnik3virq rxjs: 7.5.5 tslib: 2.4.0 zone.js: 0.11.6 @@ -518,7 +520,6 @@ packages: engines: { node: '>=6.9.0' } dependencies: '@babel/highlight': 7.18.6 - dev: true /@babel/compat-data/7.18.8: resolution: { integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== } @@ -805,7 +806,6 @@ packages: /@babel/helper-validator-identifier/7.18.6: resolution: { integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== } engines: { node: '>=6.9.0' } - dev: true /@babel/helper-validator-option/7.18.6: resolution: { integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== } @@ -842,7 +842,6 @@ packages: '@babel/helper-validator-identifier': 7.18.6 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true /@babel/parser/7.18.8: resolution: { integrity: sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA== } @@ -1997,6 +1996,29 @@ packages: tslib: 2.4.0 dev: false + /@ngneat/transloco-utils/3.0.2: + resolution: { integrity: sha512-NItuBldCJPfQ1FtDcbTQUGbOtfYjdoNC/IIV+M0jeUqzeKCZCYh5ajwTYhLXSXhMhG4nH4QNWCADOKwOAOVuRg== } + dependencies: + cosmiconfig: 7.0.1 + tslib: 2.4.0 + dev: false + + /@ngneat/transloco/4.1.0_dzujbj7drp6g2oxeynnik3virq: + resolution: { integrity: sha512-dBis8YaaLL5Cg/Uk+RTtzInD3A8ctKhOo9kbR+4SFHvtSSMM8dXyVwuFMjDGgLKdAn/U6WB6Cwp3LFCw0ftBgQ== } + peerDependencies: + '@angular/core': '>=13.0.0' + rxjs: '>=6.0.0' + dependencies: + '@angular/core': 14.0.5_rxjs@7.5.5+zone.js@0.11.6 + '@ngneat/transloco-utils': 3.0.2 + flat: 5.0.2 + lodash.kebabcase: 4.1.1 + ora: 5.4.1 + replace-in-file: 6.3.5 + rxjs: 7.5.5 + tslib: 2.4.0 + dev: false + /@ngtools/webpack/14.0.5_ptzhxof3x65ohorlrlcmzjacqi: resolution: { integrity: sha512-fOHtOYfuQhMTcqOfASuH5z8LwEmIG8323yPTP528w9RM9bUr3JaoK1RNcVuLKSvAGRTvTfeykK3/Eri/YW1DvQ== } engines: { node: ^14.15.0 || >=16.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0' } @@ -2257,7 +2279,6 @@ packages: /@types/parse-json/4.0.0: resolution: { integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== } - dev: true /@types/q/0.0.32: resolution: { integrity: sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug== } @@ -2777,7 +2798,6 @@ packages: /ansi-regex/5.0.1: resolution: { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== } engines: { node: '>=8' } - dev: true /ansi-styles/2.2.1: resolution: { integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== } @@ -2789,14 +2809,12 @@ packages: engines: { node: '>=4' } dependencies: color-convert: 1.9.3 - dev: true /ansi-styles/4.3.0: resolution: { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== } engines: { node: '>=8' } dependencies: color-convert: 2.0.1 - dev: true /anymatch/3.1.2: resolution: { integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== } @@ -2994,7 +3012,6 @@ packages: /balanced-match/1.0.2: resolution: { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== } - dev: true /base64-arraybuffer/0.1.4: resolution: { integrity: sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg== } @@ -3003,7 +3020,6 @@ packages: /base64-js/1.5.1: resolution: { integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== } - dev: true /base64id/2.0.0: resolution: { integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== } @@ -3035,7 +3051,6 @@ packages: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.0 - dev: true /blocking-proxy/1.0.1: resolution: { integrity: sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA== } @@ -3101,7 +3116,6 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /brace-expansion/2.0.1: resolution: { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== } @@ -3144,7 +3158,6 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true /builtins/5.0.1: resolution: { integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== } @@ -3255,7 +3268,6 @@ packages: /callsites/3.1.0: resolution: { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== } engines: { node: '>=6' } - dev: true /camelcase/5.3.1: resolution: { integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== } @@ -3288,7 +3300,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true /chalk/4.1.2: resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== } @@ -3296,7 +3307,6 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true /chardet/0.7.0: resolution: { integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== } @@ -3352,12 +3362,10 @@ packages: engines: { node: '>=8' } dependencies: restore-cursor: 3.1.0 - dev: true /cli-spinners/2.6.1: resolution: { integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== } engines: { node: '>=6' } - dev: true /cli-width/3.0.0: resolution: { integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== } @@ -3378,7 +3386,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /clone-deep/4.0.1: resolution: { integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== } @@ -3392,28 +3399,23 @@ packages: /clone/1.0.4: resolution: { integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== } engines: { node: '>=0.8' } - dev: true /color-convert/1.9.3: resolution: { integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== } dependencies: color-name: 1.1.3 - dev: true /color-convert/2.0.1: resolution: { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== } engines: { node: '>=7.0.0' } dependencies: color-name: 1.1.4 - dev: true /color-name/1.1.3: resolution: { integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== } - dev: true /color-name/1.1.4: resolution: { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== } - dev: true /color-support/1.1.3: resolution: { integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== } @@ -3472,7 +3474,6 @@ packages: /concat-map/0.0.1: resolution: { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== } - dev: true /connect-history-api-fallback/1.6.0: resolution: { integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== } @@ -3580,7 +3581,6 @@ packages: parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: true /create-require/1.1.1: resolution: { integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== } @@ -3768,7 +3768,6 @@ packages: resolution: { integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA== } dependencies: clone: 1.0.4 - dev: true /define-lazy-prop/2.0.0: resolution: { integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== } @@ -3916,7 +3915,6 @@ packages: /emoji-regex/8.0.0: resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== } - dev: true /emojis-list/3.0.0: resolution: { integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== } @@ -3998,7 +3996,6 @@ packages: resolution: { integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== } dependencies: is-arrayish: 0.2.1 - dev: true /es-module-lexer/0.9.3: resolution: { integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== } @@ -4231,7 +4228,6 @@ packages: /escalade/3.1.1: resolution: { integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== } engines: { node: '>=6' } - dev: true /escape-html/1.0.3: resolution: { integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== } @@ -4240,7 +4236,6 @@ packages: /escape-string-regexp/1.0.5: resolution: { integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== } engines: { node: '>=0.8.0' } - dev: true /escape-string-regexp/4.0.0: resolution: { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== } @@ -4583,6 +4578,11 @@ packages: rimraf: 3.0.2 dev: true + /flat/5.0.2: + resolution: { integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== } + hasBin: true + dev: false + /flatted/2.0.2: resolution: { integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== } dev: true @@ -4650,7 +4650,6 @@ packages: /fs.realpath/1.0.0: resolution: { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== } - dev: true /fsevents/2.3.2: resolution: { integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== } @@ -4690,7 +4689,6 @@ packages: /get-caller-file/2.0.5: resolution: { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== } engines: { node: 6.* || 8.* || >= 10.* } - dev: true /get-intrinsic/1.1.2: resolution: { integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== } @@ -4754,7 +4752,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob/8.0.1: resolution: { integrity: sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow== } @@ -4863,12 +4860,10 @@ packages: /has-flag/3.0.0: resolution: { integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== } engines: { node: '>=4' } - dev: true /has-flag/4.0.0: resolution: { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== } engines: { node: '>=8' } - dev: true /has-property-descriptors/1.0.0: resolution: { integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== } @@ -5089,7 +5084,6 @@ packages: /ieee754/1.2.1: resolution: { integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== } - dev: true /ignore-walk/5.0.1: resolution: { integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== } @@ -5125,7 +5119,6 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true /imurmurhash/0.1.4: resolution: { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== } @@ -5146,7 +5139,6 @@ packages: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits/2.0.3: resolution: { integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== } @@ -5154,7 +5146,6 @@ packages: /inherits/2.0.4: resolution: { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== } - dev: true /ini/1.3.8: resolution: { integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== } @@ -5202,7 +5193,6 @@ packages: /is-arrayish/0.2.1: resolution: { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== } - dev: true /is-binary-path/2.1.0: resolution: { integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== } @@ -5231,7 +5221,6 @@ packages: /is-fullwidth-code-point/3.0.0: resolution: { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== } engines: { node: '>=8' } - dev: true /is-glob/4.0.3: resolution: { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== } @@ -5243,7 +5232,6 @@ packages: /is-interactive/1.0.0: resolution: { integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== } engines: { node: '>=8' } - dev: true /is-lambda/1.0.1: resolution: { integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== } @@ -5302,7 +5290,6 @@ packages: /is-unicode-supported/0.1.0: resolution: { integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== } engines: { node: '>=10' } - dev: true /is-what/3.14.1: resolution: { integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== } @@ -5434,7 +5421,6 @@ packages: /js-tokens/4.0.0: resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== } - dev: true /js-yaml/3.14.1: resolution: { integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== } @@ -5468,7 +5454,6 @@ packages: /json-parse-even-better-errors/2.3.1: resolution: { integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== } - dev: true /json-schema-traverse/0.4.1: resolution: { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== } @@ -5683,7 +5668,6 @@ packages: /lines-and-columns/1.2.4: resolution: { integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== } - dev: true /loader-runner/4.3.0: resolution: { integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== } @@ -5715,6 +5699,10 @@ packages: resolution: { integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== } dev: true + /lodash.kebabcase/4.1.1: + resolution: { integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== } + dev: false + /lodash.merge/4.6.2: resolution: { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== } dev: true @@ -5733,7 +5721,6 @@ packages: dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - dev: true /log4js/6.3.0: resolution: { integrity: sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw== } @@ -5908,7 +5895,6 @@ packages: /mimic-fn/2.1.0: resolution: { integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== } engines: { node: '>=6' } - dev: true /mini-css-extract-plugin/2.6.0_webpack@5.72.1: resolution: { integrity: sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w== } @@ -5934,7 +5920,6 @@ packages: resolution: { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== } dependencies: brace-expansion: 1.1.11 - dev: true /minimatch/5.0.1: resolution: { integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== } @@ -6315,14 +6300,12 @@ packages: resolution: { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== } dependencies: wrappy: 1.0.2 - dev: true /onetime/5.1.2: resolution: { integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== } engines: { node: '>=6' } dependencies: mimic-fn: 2.1.0 - dev: true /open/8.4.0: resolution: { integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== } @@ -6358,7 +6341,6 @@ packages: log-symbols: 4.1.0 strip-ansi: 6.0.1 wcwidth: 1.0.1 - dev: true /os-tmpdir/1.0.2: resolution: { integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== } @@ -6439,7 +6421,6 @@ packages: engines: { node: '>=6' } dependencies: callsites: 3.1.0 - dev: true /parse-json/5.2.0: resolution: { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } @@ -6449,7 +6430,6 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - dev: true /parse-node-version/1.0.1: resolution: { integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== } @@ -6498,7 +6478,6 @@ packages: /path-is-absolute/1.0.1: resolution: { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== } engines: { node: '>=0.10.0' } - dev: true /path-is-inside/1.0.2: resolution: { integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== } @@ -6520,7 +6499,6 @@ packages: /path-type/4.0.0: resolution: { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== } engines: { node: '>=8' } - dev: true /performance-now/2.1.0: resolution: { integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== } @@ -7184,7 +7162,6 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true /readdirp/3.5.0: resolution: { integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== } @@ -7257,6 +7234,16 @@ packages: jsesc: 0.5.0 dev: true + /replace-in-file/6.3.5: + resolution: { integrity: sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg== } + engines: { node: '>=10' } + hasBin: true + dependencies: + chalk: 4.1.2 + glob: 7.2.3 + yargs: 17.5.1 + dev: false + /request/2.88.2: resolution: { integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== } engines: { node: '>= 6' } @@ -7287,7 +7274,6 @@ packages: /require-directory/2.1.1: resolution: { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== } engines: { node: '>=0.10.0' } - dev: true /require-from-string/2.0.2: resolution: { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== } @@ -7305,7 +7291,6 @@ packages: /resolve-from/4.0.0: resolution: { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== } engines: { node: '>=4' } - dev: true /resolve-from/5.0.0: resolution: { integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== } @@ -7347,7 +7332,6 @@ packages: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: true /retry/0.12.0: resolution: { integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== } @@ -7411,7 +7395,6 @@ packages: /safe-buffer/5.2.1: resolution: { integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== } - dev: true /safer-buffer/2.1.2: resolution: { integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== } @@ -7640,7 +7623,6 @@ packages: /signal-exit/3.0.7: resolution: { integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== } - dev: true /slash/3.0.0: resolution: { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== } @@ -7925,7 +7907,6 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true /string_decoder/1.1.1: resolution: { integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== } @@ -7937,7 +7918,6 @@ packages: resolution: { integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== } dependencies: safe-buffer: 5.2.1 - dev: true /strip-ansi/3.0.1: resolution: { integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== } @@ -7951,7 +7931,6 @@ packages: engines: { node: '>=8' } dependencies: ansi-regex: 5.0.1 - dev: true /strip-final-newline/2.0.0: resolution: { integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== } @@ -8001,14 +7980,12 @@ packages: engines: { node: '>=4' } dependencies: has-flag: 3.0.0 - dev: true /supports-color/7.2.0: resolution: { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== } engines: { node: '>=8' } dependencies: has-flag: 4.0.0 - dev: true /supports-color/8.1.1: resolution: { integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== } @@ -8324,7 +8301,6 @@ packages: /util-deprecate/1.0.2: resolution: { integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== } - dev: true /utils-merge/1.0.1: resolution: { integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= } @@ -8395,7 +8371,6 @@ packages: resolution: { integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== } dependencies: defaults: 1.0.3 - dev: true /webdriver-js-extender/2.1.0: resolution: { integrity: sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ== } @@ -8627,11 +8602,9 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true /wrappy/1.0.2: resolution: { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== } - dev: true /ws/7.4.6: resolution: { integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== } @@ -8679,7 +8652,6 @@ packages: /y18n/5.0.8: resolution: { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== } engines: { node: '>=10' } - dev: true /yallist/4.0.0: resolution: { integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== } @@ -8688,7 +8660,6 @@ packages: /yaml/1.10.2: resolution: { integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== } engines: { node: '>= 6' } - dev: true /yargs-parser/18.1.3: resolution: { integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== } @@ -8706,7 +8677,6 @@ packages: /yargs-parser/21.0.1: resolution: { integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== } engines: { node: '>=12' } - dev: true /yargs/15.4.1: resolution: { integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== } @@ -8762,7 +8732,6 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.0.1 - dev: true /yn/3.1.1: resolution: { integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== } diff --git a/Code/skyrim_ui/src/app/app.module.ts b/Code/skyrim_ui/src/app/app.module.ts index 301a5b477..585341a07 100644 --- a/Code/skyrim_ui/src/app/app.module.ts +++ b/Code/skyrim_ui/src/app/app.module.ts @@ -35,6 +35,7 @@ import { PlayerListService } from './services/player-list.service'; import { SettingService } from './services/setting.service'; import { SoundService } from './services/sound.service'; import { StoreService } from './services/store.service'; +import { TranslocoRootModule } from './transloco-root.module'; @NgModule({ @@ -70,6 +71,7 @@ import { StoreService } from './services/store.service'; ReactiveFormsModule, FontAwesomeModule, ScrollingModule, + TranslocoRootModule, ], providers: [ ClientService, diff --git a/Code/skyrim_ui/src/app/components/chat/chat.component.html b/Code/skyrim_ui/src/app/components/chat/chat.component.html index 66337edd7..1f3d07a70 100644 --- a/Code/skyrim_ui/src/app/components/chat/chat.component.html +++ b/Code/skyrim_ui/src/app/components/chat/chat.component.html @@ -1,12 +1,28 @@
-

- [{{message.date | date: 'HH:mm:ss'}}] - {{message.name}}: - {{message.content}} +

+ [{{ message.date | date: 'HH:mm:ss' }}] + {{ message.name }}: + {{ message.content }}

- - + +
diff --git a/Code/skyrim_ui/src/app/components/chat/chat.component.ts b/Code/skyrim_ui/src/app/components/chat/chat.component.ts index daac783f6..c600a1d3c 100644 --- a/Code/skyrim_ui/src/app/components/chat/chat.component.ts +++ b/Code/skyrim_ui/src/app/components/chat/chat.component.ts @@ -1,8 +1,9 @@ import { AfterViewChecked, Component, ElementRef, QueryList, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core'; -import { takeUntil } from 'rxjs'; +import { TranslocoService } from '@ngneat/transloco'; +import { firstValueFrom, takeUntil } from 'rxjs'; import { environment } from '../../../environments/environment'; -import { DestroyService } from '../../services/asset/destroy.service'; import { ClientService, Message } from '../../services/client.service'; +import { DestroyService } from '../../services/destroy.service'; import { Sound, SoundService } from '../../services/sound.service'; @@ -42,6 +43,7 @@ export class ChatComponent implements AfterViewChecked { private readonly destroy$: DestroyService, private readonly client: ClientService, private readonly sound: SoundService, + private readonly translocoService: TranslocoService, ) { client.messageReception .pipe(takeUntil(this.destroy$)) @@ -95,10 +97,16 @@ export class ChatComponent implements AfterViewChecked { } } - public sendMessage(): void { + async sendMessage(): Promise { if (this.message) { if (this.message.length > environment.chatMessageLengthLimit) { - this.client.messageReception.next({ content: `You cannot send a message longer than ${ environment.chatMessageLengthLimit } characters.` }); + const content = await firstValueFrom( + this.translocoService.selectTranslate( + 'COMPONENT.CHAT.MESSAGE_TOO_LONG', + { chatMessageLengthLimit: environment.chatMessageLengthLimit }, + ), + ); + this.client.messageReception.next({ content }); return; } diff --git a/Code/skyrim_ui/src/app/components/connect/connect.component.html b/Code/skyrim_ui/src/app/components/connect/connect.component.html index 23f2ffeb6..f1b6ce00b 100644 --- a/Code/skyrim_ui/src/app/components/connect/connect.component.html +++ b/Code/skyrim_ui/src/app/components/connect/connect.component.html @@ -1,20 +1,40 @@
-

Connect to a server using its full address. Use the format address:port. The port defaults to 10578.

-

Do NOT connect to any server if you are still in the Helgen intro sequence. Make sure you just escaped Helgen - first.

+

+

+ {{ 'COMPONENT.CONNECT.INFO.HELGEN' | transloco }} +

- - + + - + - - + +
- +
diff --git a/Code/skyrim_ui/src/app/components/connect/connect.component.ts b/Code/skyrim_ui/src/app/components/connect/connect.component.ts index 511c9d792..029f26669 100644 --- a/Code/skyrim_ui/src/app/components/connect/connect.component.ts +++ b/Code/skyrim_ui/src/app/components/connect/connect.component.ts @@ -1,5 +1,6 @@ import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, OnDestroy, Output, ViewChild, ViewEncapsulation } from '@angular/core'; -import { Subscription } from 'rxjs'; +import { TranslocoService } from '@ngneat/transloco'; +import { firstValueFrom, Subscription } from 'rxjs'; import { ClientService } from '../../services/client.service'; import { ErrorService } from '../../services/error.service'; import { Sound, SoundService } from '../../services/sound.service'; @@ -29,8 +30,9 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { private readonly sound: SoundService, private readonly errorService: ErrorService, private readonly storeService: StoreService, + private readonly translocoService: TranslocoService, ) { - this.connectionSubscription = this.client.connectionStateChange.subscribe(state => { + this.connectionSubscription = this.client.connectionStateChange.subscribe(async state => { if (this.connecting) { this.connecting = false; @@ -40,18 +42,21 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { } else { this.sound.play(Sound.Fail); - this.errorService.error( - 'Could not connect to the specified server. Please make sure you\'ve entered the ' + - 'correct address and that you\'re not experiencing network issues.', + const message = await firstValueFrom( + this.translocoService.selectTranslate('COMPONENT.CONNECT.ERROR.CONNECTION'), ); + this.errorService.error(message); } } }); - this.protocolMismatchSubscription = this.client.protocolMismatchChange.subscribe(state => { + this.protocolMismatchSubscription = this.client.protocolMismatchChange.subscribe(async state => { if (state) { this.connecting = false; - this.errorService.error('You cannot connect to the server because it does not have the same version of Skyrim Together as you.'); + const message = await firstValueFrom( + this.translocoService.selectTranslate('COMPONENT.CONNECT.ERROR.VERSION_MISMATCH'), + ); + this.errorService.error(message); } }); @@ -71,12 +76,15 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { this.protocolMismatchSubscription.unsubscribe(); } - public connect(): void { + async connect(): Promise { const address = this.address.trim().match(/^(.+?)(?::([0-9]+))?$/); if (!address) { this.sound.play(Sound.Fail); - this.errorService.error('The address is of invalid format.'); + const message = await firstValueFrom( + this.translocoService.selectTranslate('COMPONENT.CONNECT.ERROR.INVALID_ADDRESS'), + ); + this.errorService.error(message); return; } diff --git a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.html b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.html index 46aa63faf..2eb64177c 100644 --- a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.html +++ b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.html @@ -1,5 +1,5 @@ -

Are you sure you want to disconnect?

+

{{ 'COMPONENT.DISCONNECT.PROMPT' | transloco }}

- - + + diff --git a/Code/skyrim_ui/src/app/components/error/error.component.html b/Code/skyrim_ui/src/app/components/error/error.component.html index f82c9c932..ef8316d2d 100644 --- a/Code/skyrim_ui/src/app/components/error/error.component.html +++ b/Code/skyrim_ui/src/app/components/error/error.component.html @@ -1,6 +1,8 @@

{{ error }}

- +
diff --git a/Code/skyrim_ui/src/app/components/group/group.component.ts b/Code/skyrim_ui/src/app/components/group/group.component.ts index 5bd713f7e..bdde00f5b 100644 --- a/Code/skyrim_ui/src/app/components/group/group.component.ts +++ b/Code/skyrim_ui/src/app/components/group/group.component.ts @@ -4,8 +4,8 @@ import { map } from 'rxjs/operators'; import { SettingService } from 'src/app/services/setting.service'; import { Group } from '../../models/group'; import { Player } from '../../models/player'; -import { DestroyService } from '../../services/asset/destroy.service'; import { ClientService } from '../../services/client.service'; +import { DestroyService } from '../../services/destroy.service'; import { GroupService } from '../../services/group.service'; import { animation as popupsAnimation } from '../root/popups.animation'; @@ -157,15 +157,15 @@ export class GroupComponent implements OnInit, OnDestroy { } public accept(inviterId: number) { - this.groupService.accept(inviterId); + return this.groupService.accept(inviterId); } public kick(playerId: number) { - this.groupService.kick(playerId); + return this.groupService.kick(playerId); } public changeLeader(playerId: number) { - this.groupService.changeLeader(playerId); + return this.groupService.changeLeader(playerId); } } diff --git a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts index 48772e9c2..e6516ce84 100644 --- a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts +++ b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts @@ -3,7 +3,7 @@ import { takeUntil } from 'rxjs'; import { environment } from '../../../environments/environment'; import { Player } from '../../models/player'; import { NotificationType, PopupNotification } from '../../models/popup-notification'; -import { DestroyService } from '../../services/asset/destroy.service'; +import { DestroyService } from '../../services/destroy.service'; import { GroupService } from '../../services/group.service'; import { PopupNotificationService } from '../../services/popup-notification.service'; import { animation as popupTestAnimation } from '../popup/popup.animation'; @@ -43,11 +43,11 @@ export class NotificationPopupComponent implements OnInit { return this.notification.type === NotificationType.Connection; } - clickNotification() { + async clickNotification() { this.isActive = false; if (this.notification.type === NotificationType.Invitation) { if (this.notification.player) { - this.groupService.accept(this.notification.player.id); + await this.groupService.accept(this.notification.player.id); this.popupNotificationService.clearMessage(); } diff --git a/Code/skyrim_ui/src/app/components/notifications/notifications.component.html b/Code/skyrim_ui/src/app/components/notifications/notifications.component.html index 822b1da2b..e0d283586 100644 --- a/Code/skyrim_ui/src/app/components/notifications/notifications.component.html +++ b/Code/skyrim_ui/src/app/components/notifications/notifications.component.html @@ -1,4 +1,4 @@

- {{notification.content}} + {{ notification.content }}

diff --git a/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts b/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts index ed869fbdc..1753641c6 100644 --- a/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts +++ b/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts @@ -1,7 +1,8 @@ import { Component, ViewEncapsulation } from '@angular/core'; -import { takeUntil } from 'rxjs'; -import { DestroyService } from '../../services/asset/destroy.service'; +import { TranslocoService } from '@ngneat/transloco'; +import { takeUntil, withLatestFrom } from 'rxjs'; import { ClientService } from '../../services/client.service'; +import { DestroyService } from '../../services/destroy.service'; interface Notification { @@ -23,12 +24,16 @@ export class NotificationsComponent { public constructor( private readonly destroy$: DestroyService, private readonly client: ClientService, + private readonly translocoService: TranslocoService, ) { this.client.messageReception - .pipe(takeUntil(this.destroy$)) - .subscribe(message => { + .pipe( + takeUntil(this.destroy$), + withLatestFrom(this.translocoService.selectTranslate('COMPONENT.NOTIFICATIONS.MESSAGE_FROM')), + ) + .subscribe(([message, text]) => { this.notifications.push({ - content: `${ message.name ? `Message from ${ message.name }: ` : '' }${ message.content }`, + content: `${ message.name ? `${ text } ${ message.name }: ` : '' }${ message.content }`, timer: setTimeout(() => { this.notifications.shift(); }, 5000), @@ -37,9 +42,9 @@ export class NotificationsComponent { if (this.notifications.length > 5) { for (let notification of this.notifications.splice(0, this.notifications.length - 5)) { clearTimeout(notification.timer); + } } - } - }); + }); } } diff --git a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html index 1143ad35f..141e9daa0 100644 --- a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html +++ b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html @@ -5,27 +5,24 @@ class="party-menu-button" (click)="acceptPartyInvite(player.id)" > - Accept invite from {{ player.name }} + {{ 'COMPONENT.PARTY_MENU.ACCEPT_INVITE' | transloco:{ name: player.name } }}
-

- For an optimal questing experience, make sure to read the playguide on our wiki, which you can - find through our website, skyrim-together.com. Here is a small summary of the guidelines: -

+

    -
  • By creating a party, you sort of become the "host", aka the party leader.
  • -
  • Only the party leader can talk to quest NPCs to progress quests.
  • -
  • Only the party leader can loot quest items.
  • -
  • Stick to one party leader per playthrough.
  • -
  • Stick to one party per server.
  • +
  • {{ 'COMPONENT.PARTY_MENU.GUIDELINES.PARTY' | transloco }}
  • +
  • {{ 'COMPONENT.PARTY_MENU.GUIDELINES.PARTY_LEADER_TALK' | transloco }}
  • +
  • {{ 'COMPONENT.PARTY_MENU.GUIDELINES.PARTY_LEADER_LOOT_QUESTITEMS' | transloco }}
  • +
  • {{ 'COMPONENT.PARTY_MENU.GUIDELINES.KEEP_PARTY_LEADER' | transloco }}
  • +
  • {{ 'COMPONENT.PARTY_MENU.GUIDELINES.ONE_PARTY_PER_SERVER' | transloco }}
-
- There is nobody in your party yet. Invite them through the player list! +
+ {{ 'COMPONENT.PARTY_MENU.NO_PLAYERS_IN_PARTY' | transloco }}
@@ -33,9 +30,9 @@ - - - + + + @@ -45,13 +42,15 @@ @@ -70,5 +69,7 @@ - + diff --git a/Code/skyrim_ui/src/app/components/player-list/player-list.component.html b/Code/skyrim_ui/src/app/components/player-list/player-list.component.html index b7151d42f..4491b53ca 100644 --- a/Code/skyrim_ui/src/app/components/player-list/player-list.component.html +++ b/Code/skyrim_ui/src/app/components/player-list/player-list.component.html @@ -1,5 +1,5 @@
- Nobody here but us chickens! + {{ 'COMPONENT.PARTY_LIST.NO_OTHER_PLAYERS' | transloco }}
@@ -7,9 +7,9 @@
Lv.NameLocation{{ 'COMPONENT.PARTY_MENU.TABLE_HEADERS.LEVEL' | transloco }}{{ 'COMPONENT.PARTY_MENU.TABLE_HEADERS.NAME' | transloco }}{{ 'COMPONENT.PARTY_MENU.TABLE_HEADERS.LOCATION' | transloco }}
{{ player.name }} {{ player.cellName }} - +
- - - + + + @@ -25,7 +25,7 @@ class="user-action-button" (click)="sendPartyInvite(player.id)" > - Invite + {{ 'COMPONENT.PARTY_LIST.INVITE' | transloco }} diff --git a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.html b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.html index 955f5f60a..c3129537e 100644 --- a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.html +++ b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.html @@ -4,14 +4,14 @@ [attr.data-style-active]="(activeTab | async) === PlayerManagerTab.PLAYER_LIST" (click)="switchTab(PlayerManagerTab.PLAYER_LIST)" > - Player List + {{ 'COMPONENT.PLAYER_MANAGER.PLAYER_LIST' | transloco }} @@ -21,5 +21,7 @@
- +
diff --git a/Code/skyrim_ui/src/app/components/root/root.component.html b/Code/skyrim_ui/src/app/components/root/root.component.html index c1ee66d2e..24ec59826 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.html +++ b/Code/skyrim_ui/src/app/components/root/root.component.html @@ -17,7 +17,7 @@ [attr.data-style-active]="(view | async) === RootView.CONNECT" (click)="setView(RootView.CONNECT)" > - Connect + {{ 'COMPONENT.ROOT.CONNECT' | transloco }} diff --git a/Code/skyrim_ui/src/app/components/root/root.component.ts b/Code/skyrim_ui/src/app/components/root/root.component.ts index 6beb13e14..849aa31c5 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.ts +++ b/Code/skyrim_ui/src/app/components/root/root.component.ts @@ -4,8 +4,8 @@ import { BehaviorSubject, takeUntil } from 'rxjs'; import { PartyInfo } from 'src/app/models/party-info'; import { environment } from '../../../environments/environment'; import { Player } from '../../models/player'; -import { DestroyService } from '../../services/asset/destroy.service'; import { ClientService } from '../../services/client.service'; +import { DestroyService } from '../../services/destroy.service'; import { Sound, SoundService } from '../../services/sound.service'; import { ChatComponent } from '../chat/chat.component'; import { animation as controlsAnimation } from './controls.animation'; diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss b/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss index 93c337620..ff2ad4f77 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss @@ -17,7 +17,7 @@ app-server-list { justify-content: center; } - .example-viewport { + .virtual-viewport { height: calc(60vh - 38px); width: 100%; } diff --git a/Code/skyrim_ui/src/app/components/settings/settings.component.html b/Code/skyrim_ui/src/app/components/settings/settings.component.html index 6fa7407fd..8cf60d69b 100644 --- a/Code/skyrim_ui/src/app/components/settings/settings.component.html +++ b/Code/skyrim_ui/src/app/components/settings/settings.component.html @@ -2,13 +2,13 @@
-

Audio

+

{{ 'COMPONENT.SETTINGS.AUDIO' | transloco }}

- +
- + @@ -16,31 +16,31 @@

Audio

-

Party

+

{{ 'COMPONENT.SETTINGS.PARTY' | transloco }}

- +
- +
- +
- + - + - + @@ -49,9 +49,9 @@

Party

-

Debug

+

{{ 'COMPONENT.SETTINGS.DEBUG' | transloco }}

- + @@ -61,5 +61,7 @@

Debug

- +
diff --git a/Code/skyrim_ui/src/app/services/client.service.ts b/Code/skyrim_ui/src/app/services/client.service.ts index e320f82c3..574b26a10 100644 --- a/Code/skyrim_ui/src/app/services/client.service.ts +++ b/Code/skyrim_ui/src/app/services/client.service.ts @@ -1,5 +1,6 @@ import { Injectable, NgZone, OnDestroy } from '@angular/core'; -import { AsyncSubject, BehaviorSubject, ReplaySubject, Subject } from 'rxjs'; +import { TranslocoService } from '@ngneat/transloco'; +import { AsyncSubject, BehaviorSubject, firstValueFrom, ReplaySubject, Subject } from 'rxjs'; import { environment } from '../../environments/environment'; import { Debug } from '../models/debug'; import { PartyInfo } from '../models/party-info'; @@ -122,9 +123,10 @@ export class ClientService implements OnDestroy { * Instantiate. */ public constructor( - private zone: NgZone, - private errorService: ErrorService, - private loadingService: LoadingService, + private readonly zone: NgZone, + private readonly errorService: ErrorService, + private readonly loadingService: LoadingService, + private readonly translocoService: TranslocoService, ) { if (environment.game) { skyrimtogether.on('init', this.onInit.bind(this)); @@ -204,6 +206,7 @@ export class ClientService implements OnDestroy { * * @param host IP address or hostname. * @param port Port. + * @param token Password or admin password */ public connect(host: string, port: number, token = ''): void { if (environment.game) { @@ -447,14 +450,20 @@ export class ClientService implements OnDestroy { * Called when a connection is terminated. */ private onDisconnect(isError: boolean): void { - this.zone.run(() => { + void this.zone.run(async () => { this.localPlayerId = undefined; this.connectionStateChange.next(false); this.isConnectionInProgressChange.next(false); if (isError && this._remainingReconnectionAttempt > 0) { this._remainingReconnectionAttempt--; - this.messageReception.next({ content: `Connection lost, trying to reconnect. ${ this._remainingReconnectionAttempt } attempts left.` }); + const content = await firstValueFrom( + this.translocoService.selectTranslate( + 'SERVICE.CLIENT.CONNECTION_LOST', + { remainingReconnectionAttempt: this._remainingReconnectionAttempt }, + ), + ); + this.messageReception.next({ content }); this.connect(this._host, this._port, this._token); } }); @@ -628,4 +637,5 @@ export class ClientService implements OnDestroy { this.partyInviteReceivedChange.next(inviterId); }); } + } diff --git a/Code/skyrim_ui/src/app/services/asset/destroy.service.ts b/Code/skyrim_ui/src/app/services/destroy.service.ts similarity index 100% rename from Code/skyrim_ui/src/app/services/asset/destroy.service.ts rename to Code/skyrim_ui/src/app/services/destroy.service.ts diff --git a/Code/skyrim_ui/src/app/services/group.service.ts b/Code/skyrim_ui/src/app/services/group.service.ts index 9406611b1..a5c5bad07 100644 --- a/Code/skyrim_ui/src/app/services/group.service.ts +++ b/Code/skyrim_ui/src/app/services/group.service.ts @@ -1,5 +1,6 @@ import { Injectable, OnDestroy } from '@angular/core'; -import { BehaviorSubject, Observable, of, pluck, Subscription } from 'rxjs'; +import { TranslocoService } from '@ngneat/transloco'; +import { BehaviorSubject, firstValueFrom, Observable, of, pluck, Subscription } from 'rxjs'; import { filter, map } from 'rxjs/operators'; import { Group } from '../models/group'; import { PartyInfo } from '../models/party-info'; @@ -36,6 +37,7 @@ export class GroupService implements OnDestroy { private readonly clientService: ClientService, private readonly playerListService: PlayerListService, private readonly loadingService: LoadingService, + private readonly translocoService: TranslocoService, ) { this.onDebug(); this.onConnectionStateChanged(); @@ -159,7 +161,7 @@ export class GroupService implements OnDestroy { } private onLevelChange() { - this.levelSubscription = this.clientService.levelChange.subscribe((player: Player) => { + this.levelSubscription = this.clientService.levelChange.subscribe(async (player: Player) => { const group = this.createGroup(this.group.getValue()); if (group) { @@ -167,7 +169,10 @@ export class GroupService implements OnDestroy { if (p) { p.level = player.level; - this.clientService.messageReception.next({ content: `${ p.name } has reached level ${ player.level }.` }); + const content = await firstValueFrom( + this.translocoService.selectTranslate('SERVICE.GROUP.LEVEL_UP', { name: p.name, level: player.level }), + ); + this.clientService.messageReception.next({ content }); } } }); @@ -238,12 +243,15 @@ export class GroupService implements OnDestroy { this.clientService.createPartyInvite(playerId); } - public accept(inviterId: number) { + async accept(inviterId: number) { const group = this.createGroup(this.group.getValue()); if (group) { if (group.owner || group.members.length > 0) { - this.errorService.error('You are already in a group. To join another group, please leave your current group.'); + const message = await firstValueFrom( + this.translocoService.selectTranslate('SERVICE.GROUP.ALREADY_IN_GROUP'), + ); + this.errorService.error(message); return; } @@ -253,12 +261,15 @@ export class GroupService implements OnDestroy { } } - public kick(playerId: number) { + async kick(playerId: number) { const group = this.createGroup(this.group.getValue()); if (group) { if (group.owner !== this.clientService.localPlayerId) { - this.errorService.error('You cannot kick other members as you are not the party leader.'); + const message = await firstValueFrom( + this.translocoService.selectTranslate('SERVICE.GROUP.KICK_NO_PARTY_LEADER'), + ); + this.errorService.error(message); return; } @@ -268,12 +279,15 @@ export class GroupService implements OnDestroy { } } - public changeLeader(playerId: number) { + async changeLeader(playerId: number) { const group = this.createGroup(this.group.getValue()); if (group) { if (group.owner !== this.clientService.localPlayerId) { - this.errorService.error('You cannot make another member the leader as you are not the party leader.'); + const message = await firstValueFrom( + this.translocoService.selectTranslate('SERVICE.GROUP.MAKE_LEADER_NO_PARTY_LEADER'), + ); + this.errorService.error(message); return; } diff --git a/Code/skyrim_ui/src/app/transloco-root.module.ts b/Code/skyrim_ui/src/app/transloco-root.module.ts new file mode 100644 index 000000000..44982e222 --- /dev/null +++ b/Code/skyrim_ui/src/app/transloco-root.module.ts @@ -0,0 +1,39 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable, NgModule } from '@angular/core'; +import { Translation, TRANSLOCO_CONFIG, TRANSLOCO_LOADER, translocoConfig, TranslocoLoader, TranslocoModule } from '@ngneat/transloco'; +import { environment } from '../environments/environment'; + + +@Injectable({ providedIn: 'root' }) +export class TranslocoHttpLoader implements TranslocoLoader { + + constructor( + private readonly http: HttpClient, + ) { + } + + getTranslation(lang: string) { + return this.http.get(`assets/i18n/${ lang }.json`); + } +} + +@NgModule({ + exports: [TranslocoModule], + providers: [ + { + provide: TRANSLOCO_CONFIG, + useValue: translocoConfig({ + availableLangs: ['en', 'overwrite'], + defaultLang: 'overwrite', + fallbackLang: 'en', + missingHandler: { + useFallbackTranslation: true, + }, + prodMode: environment.production, + }), + }, + { provide: TRANSLOCO_LOADER, useClass: TranslocoHttpLoader }, + ], +}) +export class TranslocoRootModule { +} diff --git a/Code/skyrim_ui/src/assets/i18n/en.json b/Code/skyrim_ui/src/assets/i18n/en.json new file mode 100644 index 000000000..51e5c7c8a --- /dev/null +++ b/Code/skyrim_ui/src/assets/i18n/en.json @@ -0,0 +1,127 @@ +{ + "INFO": "DO NOT MODIFY THIS FILE! USE THE overwrite.json FILE TO TRANSLATE THE UI!", + + "COMPONENT": { + "CHAT": { + "SEND": "Send", + "MESSAGE": "Message", + "MESSAGE_TOO_LONG": "You cannot send a message longer than {{chatMessageLengthLimit}} characters." + }, + "CONNECT": { + "INFO": { + "SERVER_ADDRESS": "Connect to a server using its full address. Use the format address:port. The port defaults to 10578.", + "HELGEN": "Do NOT connect to any server if you are still in the Helgen intro sequence. Make sure you just escaped Helgen first." + }, + "ADDRESS": "Address", + "PASSWORD": "Password", + "SAVE_PASSWORD": "Save Password?", + "CONNECT": "Connect", + "CANCEL": "Cancel", + "PUBLIC_SERVERS": "Public servers", + "ERROR": { + "CONNECTION": "Could not connect to the specified server. Please make sure you've entered the correct address and that you're not experiencing network issues", + "VERSION_MISMATCH": "You cannot connect to the server because it does not have the same version of Skyrim Together as you.", + "INVALID_ADDRESS": "The address is of invalid format." + } + }, + "DISCONNECT": { + "PROMPT": "Are you sure you want to disconnect?", + "PROCEED": "Proceed", + "CANCEL": "Cancel", + "ERROR": { + "CONNECTION": "Could not connect to the specified server. Please make sure you've entered the correct address and that you're not experiencing network issues", + "VERSION_MISMATCH": "You cannot connect to the server because it does not have the same version of Skyrim Together as you.", + "INVALID_ADDRESS": "The address is of invalid format." + } + }, + "ERROR": { + "OK": "Ok" + }, + "NOTIFICATIONS": { + "MESSAGE_FROM": "Message from" + }, + "PARTY_MENU": { + "ACCEPT_INVITE": "Accept invite from {{name}}", + "EXPERIENCE_WARNING": "For an optimal questing experience, make sure to read the playguide on our wiki, which you can find through our website, skyrim-together.com. Here is a small summary of the guidelines:", + "GUIDELINES": { + "PARTY": "By creating a party, you sort of become the \"host\", aka the party leader.", + "PARTY_LEADER_TALK": "Only the party leader can talk to quest NPCs to progress quests.", + "PARTY_LEADER_LOOT_QUESTITEMS": "Only the party leader can loot quest items.", + "KEEP_PARTY_LEADER": "Stick to one party leader per playthrough.", + "ONE_PARTY_PER_SERVER": "Stick to one party per server." + }, + "NO_PLAYERS_IN_PARTY": "There is nobody in your party yet. Invite them through the player list!", + "TABLE_HEADERS": { + "LEVEL": "Lv.", + "NAME": "Name", + "LOCATION": "Location" + }, + "ACTIONS": { + "KICK": "Kick", + "TELEPORT": "Teleport", + "MAKE_LEADER": "Make leader" + }, + "LEAVE_PARTY": "Leave party" + }, + "PARTY_LIST": { + "NO_OTHER_PLAYERS": "Nobody here but us chickens!", + "TABLE_HEADERS": { + "LEVEL": "Lv.", + "NAME": "Name", + "LOCATION": "Location" + }, + "INVITE": "Invite" + }, + "PLAYER_MANAGER": { + "PLAYER_LIST": "Player List", + "PARTY_MENU": "Party Menu", + "BACK": "Back" + }, + "ROOT": { + "CONNECT": "Connect", + "DISCONNECT": "Disconnect", + "RECONNECT": "Reconnect", + "PLAYER_MANAGER": "Player Manger", + "SETTINGS": "Settings", + "CONNECTION_IN_PROGRESS": "Connection in progress" + }, + "SERVER_LIST": { + "SEARCH": "Search...", + "REFRESH": "Refresh", + "BACK": "Back", + "LOADING": "Loading...", + "NO_SERVERS": "No public server available", + "TABLE_HEADERS": { + "NAME": "Server Name", + "PLAYERS": "Players", + "COUNTRY": "Country", + "FAVORITE": "Favorite" + }, + "JOIN": "Join" + }, + "SETTINGS": { + "AUDIO": "Audio", + "MUTE_UI": "Mute UI", + "UI_VOLUME": "UI Volume", + "PARTY": "Party", + "SHOW_PARTY": "Show Party", + "AUTO_HIDE_PARTY": "Auto Hide Party", + "AUTO_HIDE_PARTY_LENGTH": "Auto Hide Timer Length", + "LENGTH": "{{length}}s", + "DEBUG": "Debug", + "SHOW_DEBUG_INFO": "Show Debug Information", + "BACK": "Back" + } + }, + "SERVICE": { + "CLIENT": { + "CONNECTION_LOST": "Connection lost, trying to reconnect. {{remainingReconnectionAttempt } attempts left." + }, + "GROUP": { + "LEVEL_UP": "{{name}} has reached level {{level}}.", + "ALREADY_IN_GROUP": "You are already in a group. To join another group, please leave your current group.", + "KICK_NO_PARTY_LEADER": "You cannot kick other members as you are not the party leader.", + "MAKE_LEADER_NO_PARTY_LEADER": "You cannot make another member the leader as you are not the party leader." + } + } +} diff --git a/Code/skyrim_ui/src/assets/i18n/overwrite.json b/Code/skyrim_ui/src/assets/i18n/overwrite.json new file mode 100644 index 000000000..3b585feca --- /dev/null +++ b/Code/skyrim_ui/src/assets/i18n/overwrite.json @@ -0,0 +1,3 @@ +{ + "INFO": "DO NOT MODIFY en.json FILE! USE THIS FILE TO OVERWRITE THE UI TRANSLATIONS!" +} diff --git a/Code/skyrim_ui/transloco.config.js b/Code/skyrim_ui/transloco.config.js new file mode 100644 index 000000000..20264c9c7 --- /dev/null +++ b/Code/skyrim_ui/transloco.config.js @@ -0,0 +1,5 @@ +module.exports = { + rootTranslationsPath: 'src/assets/i18n/', + langs: ['en', 'overwrite'], + keysManager: {}, +}; From 07f3ae340cff94924665022327da2695ad81167b Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Mon, 11 Jul 2022 18:30:01 +0200 Subject: [PATCH 06/47] fix: healing hands not working --- Code/client/Services/Generic/MagicService.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Code/client/Services/Generic/MagicService.cpp b/Code/client/Services/Generic/MagicService.cpp index 852d13ad6..4822b1a79 100644 --- a/Code/client/Services/Generic/MagicService.cpp +++ b/Code/client/Services/Generic/MagicService.cpp @@ -71,7 +71,8 @@ void MagicService::OnSpellCastEvent(const SpellCastEvent& acEvent) const noexcep // only sync concentration spells through spell cast sync, the rest through projectile sync for accuracy if (SpellItem* pSpell = Cast(TESForm::GetById(acEvent.SpellId))) { - if (pSpell->eCastingType != MagicSystem::CastingType::CONCENTRATION && + if ((pSpell->eCastingType != MagicSystem::CastingType::CONCENTRATION || + pSpell->IsHealingSpell()) && !pSpell->IsWardSpell() && !pSpell->IsInvisibilitySpell()) { @@ -313,7 +314,8 @@ void MagicService::OnAddTargetEvent(const AddTargetEvent& acEvent) noexcept // These effects are applied through spell cast sync if (SpellItem* pSpellItem = Cast(TESForm::GetById(acEvent.SpellID))) { - if (pSpellItem->eCastingType == MagicSystem::CastingType::CONCENTRATION || + if ((pSpellItem->eCastingType == MagicSystem::CastingType::CONCENTRATION && + !pSpellItem->IsHealingSpell()) || pSpellItem->IsWardSpell() || pSpellItem->IsInvisibilitySpell()) { From 34b41ade1965a95232ee074854f936567081c07f Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Mon, 11 Jul 2022 21:56:38 +0200 Subject: [PATCH 07/47] tweak: proper use of IS_MASTER --- Code/client/Services/Debug/DebugService.cpp | 13 +++++-------- Code/client/TiltedOnlinePCH.h | 1 + Code/immersive_launcher/Launcher.cpp | 3 ++- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Code/client/Services/Debug/DebugService.cpp b/Code/client/Services/Debug/DebugService.cpp index cae517fc6..5f5662911 100644 --- a/Code/client/Services/Debug/DebugService.cpp +++ b/Code/client/Services/Debug/DebugService.cpp @@ -142,9 +142,6 @@ void DebugService::OnMoveActor(const MoveActorEvent& acEvent) noexcept moveData.position = acEvent.Position; } -// TODO: replace with TP_PUBLIC or whatever -#define TP_PRIVATE_DEBUGGERS 0 - void DebugService::OnUpdate(const UpdateEvent& acUpdateEvent) noexcept { if (!BSGraphics::GetMainWindow()->IsForeground()) @@ -165,7 +162,7 @@ void DebugService::OnUpdate(const UpdateEvent& acUpdateEvent) noexcept m_showDebugStuff = !m_showDebugStuff; } -#if TP_PRIVATE_DEBUGGERS +#if (!IS_MASTER) if (GetAsyncKeyState(VK_F6)) { if (!s_f6Pressed) @@ -277,7 +274,7 @@ void DebugService::OnDraw() noexcept } ImGui::EndMenu(); } -#if TP_PRIVATE_DEBUGGERS +#if (!IS_MASTER) if (ImGui::BeginMenu("Components")) { ImGui::MenuItem("Show selected entity in world", nullptr, &m_drawComponentsInWorldSpace); @@ -310,7 +307,7 @@ void DebugService::OnDraw() noexcept ImGui::MenuItem("Entities", nullptr, &g_enableEntitiesWindow); ImGui::MenuItem("Server", nullptr, &g_enableServerWindow); -#if TP_PRIVATE_DEBUGGERS +#if (!IS_MASTER) ImGui::MenuItem("Network", nullptr, &g_enableNetworkWindow); ImGui::MenuItem("Forms", nullptr, &g_enableFormsWindow); ImGui::MenuItem("Inventory", nullptr, &g_enableInventoryWindow); @@ -328,7 +325,7 @@ void DebugService::OnDraw() noexcept { if (ImGui::Button("Crash Client")) { -#if TP_PRIVATE_DEBUGGERS +#if (!IS_MASTER) int* m = 0; *m = 1338; #else @@ -350,7 +347,7 @@ void DebugService::OnDraw() noexcept if (g_enableServerWindow) DrawServerView(); -#if TP_PRIVATE_DEBUGGERS +#if (!IS_MASTER) if (g_enableNetworkWindow) DrawNetworkView(); if (g_enableFormsWindow) diff --git a/Code/client/TiltedOnlinePCH.h b/Code/client/TiltedOnlinePCH.h index 0efb52352..26a41c381 100644 --- a/Code/client/TiltedOnlinePCH.h +++ b/Code/client/TiltedOnlinePCH.h @@ -65,6 +65,7 @@ extern void* RipAllocateN(size_t blockLength); #include #include +#include #include using TiltedPhoques::AutoPtr; diff --git a/Code/immersive_launcher/Launcher.cpp b/Code/immersive_launcher/Launcher.cpp index 66f9a1a9e..96a0ecb2a 100644 --- a/Code/immersive_launcher/Launcher.cpp +++ b/Code/immersive_launcher/Launcher.cpp @@ -1,5 +1,6 @@ #include +#include #include "TargetConfig.h" #include "launcher.h" @@ -59,7 +60,7 @@ int StartUp(int argc, char** argv) g_SharedWindowIcon = LoadIconW(GetModuleHandleW(nullptr), MAKEINTRESOURCEW(102)); #if (!IS_MASTER) - //TiltedPhoques::Debug::CreateConsole(); + TiltedPhoques::Debug::CreateConsole(); #endif if (!EarlyInstallSucceeded()) From a4c10969c51f19358b87d1c7a97ede7d665f4d47 Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Mon, 11 Jul 2022 22:20:33 +0200 Subject: [PATCH 08/47] tweak: disable admin password --- Code/server/GameServer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Code/server/GameServer.cpp b/Code/server/GameServer.cpp index 2cd5226a3..9618b2f6f 100644 --- a/Code/server/GameServer.cpp +++ b/Code/server/GameServer.cpp @@ -28,7 +28,7 @@ Console::Setting uServerPort{"GameServer:uPort", "Which port to host the server Console::Setting bPremiumTickrate{"GameServer:bPremiumMode", "Use premium tick rate", true}; Console::StringSetting sServerName{"GameServer:sServerName", "Name that shows up in the server list", "Dedicated Together Server"}; -Console::StringSetting sAdminPassword{"GameServer:sAdminPassword", "Admin authentication password", ""}; +//Console::StringSetting sAdminPassword{"GameServer:sAdminPassword", "Admin authentication password", ""}; Console::StringSetting sPassword{"GameServer:sPassword", "Server password", ""}; // Gameplay @@ -656,6 +656,7 @@ void GameServer::HandleAuthenticationRequest(const ConnectionId_t aConnectionId, m_pWorld->GetDispatcher().trigger(PlayerJoinEvent(pPlayer, acRequest->WorldSpaceId, acRequest->CellId)); } +/* else if (acRequest->Token == sAdminPassword.value() && !sAdminPassword.empty()) { AdminSessionOpen response; @@ -664,6 +665,7 @@ void GameServer::HandleAuthenticationRequest(const ConnectionId_t aConnectionId, m_adminSessions.insert(aConnectionId); spdlog::warn("New admin session for {:x} '{}'", aConnectionId, remoteAddress); } +*/ else { spdlog::info("New player {:x} '{}' has a bad token, kicking.", aConnectionId, remoteAddress); From afb98e363ee9f31ccf48f71471ad1da30aaeea1b Mon Sep 17 00:00:00 2001 From: Sebastian Comans Date: Mon, 11 Jul 2022 23:03:26 +0200 Subject: [PATCH 09/47] cleanup UI files (changes from Dragonisser) --- Code/skyrim_ui/angular.json | 15 ++++++++++----- Code/skyrim_ui/package.json | 2 +- .../src/app/components/root/root.component.html | 2 +- .../src/app/components/root/root.component.ts | 5 ----- Code/skyrim_ui/src/app/services/store.service.ts | 2 +- .../src/environments/environment.browser.ts | 2 -- ...ironment.nightly.ts => environment.develop.ts} | 2 -- .../src/environments/environment.prod.ts | 2 -- Code/skyrim_ui/src/environments/environment.ts | 2 -- Code/skyrim_ui/src/test.ts | 8 +++----- 10 files changed, 16 insertions(+), 26 deletions(-) rename Code/skyrim_ui/src/environments/{environment.nightly.ts => environment.develop.ts} (81%) diff --git a/Code/skyrim_ui/angular.json b/Code/skyrim_ui/angular.json index 4366e6277..65c8e4f39 100644 --- a/Code/skyrim_ui/angular.json +++ b/Code/skyrim_ui/angular.json @@ -21,6 +21,12 @@ "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", + "vendorChunk": true, + "extractLicenses": false, + "buildOptimizer": false, + "sourceMap": true, + "optimization": false, + "namedChunks": true, "stylePreprocessorOptions": { "includePaths": [ "src", @@ -28,7 +34,6 @@ ] }, "tsConfig": "tsconfig.app.json", - "aot": true, "assets": [ "src/favicon.ico", "src/assets/sounds/", @@ -79,11 +84,11 @@ } ] }, - "nightly": { + "develop": { "fileReplacements": [ { "replace": "src/environments/environment.ts", - "with": "src/environments/environment.nightly.ts" + "with": "src/environments/environment.develop.ts" } ] } @@ -102,8 +107,8 @@ "browser": { "browserTarget": "skyrim-together-ui:build:browser" }, - "nightly": { - "browserTarget": "skyrim-together-ui:build:nightly" + "develop": { + "browserTarget": "skyrim-together-ui:build:develop" } } }, diff --git a/Code/skyrim_ui/package.json b/Code/skyrim_ui/package.json index 57f37e42c..09a50bfbc 100644 --- a/Code/skyrim_ui/package.json +++ b/Code/skyrim_ui/package.json @@ -5,7 +5,7 @@ "ng": "ng", "start": "ng serve --host 0.0.0.0 --disable-host-check --configuration=browser", "build": "ng build", - "deploy:nightly": "ng build --output-hashing none --configuration=nightly --base-href ./ --resources-output-path ./assets/", + "deploy:develop": "ng build --output-hashing none --configuration=develop --base-href ./ --resources-output-path ./assets/", "deploy:production": "ng build --output-hashing none --configuration=production --base-href ./ --resources-output-path ./assets/", "test": "ng test", "lint": "ng lint", diff --git a/Code/skyrim_ui/src/app/components/root/root.component.html b/Code/skyrim_ui/src/app/components/root/root.component.html index 24ec59826..d70659ebb 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.html +++ b/Code/skyrim_ui/src/app/components/root/root.component.html @@ -10,7 +10,7 @@
- + diff --git a/Code/skyrim_ui/src/app/components/order/order.component.ts b/Code/skyrim_ui/src/app/components/order/order.component.ts index e70e799c3..50be299bb 100644 --- a/Code/skyrim_ui/src/app/components/order/order.component.ts +++ b/Code/skyrim_ui/src/app/components/order/order.component.ts @@ -1,5 +1,6 @@ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; -import { faCaretDown, faCaretUp } from '@fortawesome/free-solid-svg-icons'; +import { faCaretDown, faCaretUp, faSort } from '@fortawesome/free-solid-svg-icons'; +import { BehaviorSubject } from 'rxjs'; @Component({ @@ -13,12 +14,31 @@ export class OrderComponent { /* ### ICONS ### */ readonly faCaretDown = faCaretDown; readonly faCaretUp = faCaretUp; + readonly faSort = faSort; + + order = new BehaviorSubject(null); + + @Input('isIncreasingOrder') + public set isIncreasingOrderInput(value: boolean | null) { + this.order.next(value); + } - @Input() public isIncreasingOrder: boolean; @Output() public sorted = new EventEmitter(); public sort() { - this.sorted.emit(!this.isIncreasingOrder); + let newValue: boolean | null; + switch (this.order.getValue()) { + case true: + newValue = false; + break; + case false: + newValue = null; + break; + default: + newValue = true; + break; + } + this.sorted.emit(newValue); } } diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.html b/Code/skyrim_ui/src/app/components/server-list/server-list.component.html index eae7c999b..7ca456187 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.html +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.html @@ -36,21 +36,21 @@
{{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.NAME' | transloco }} - +
{{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.PLAYERS' | transloco }} - +
{{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.COUNTRY' | transloco }} - +
{{ clientVersion$ | async }}
{{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.FAVORITE' | transloco }} - +
diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts index 8b94a8b53..af22565a5 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, HostListener, Output, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Output, ViewEncapsulation } from '@angular/core'; import { faStar as farStar } from '@fortawesome/free-regular-svg-icons'; import { faStar as fasStar } from '@fortawesome/free-solid-svg-icons'; import { loadingFor } from '@ngneat/loadoff'; @@ -19,6 +19,7 @@ import { RootView } from '../root/root.component'; templateUrl: './server-list.component.html', styleUrls: ['./server-list.component.scss'], encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, }) export class ServerListComponent { @@ -30,22 +31,18 @@ export class ServerListComponent { refreshServerlist = new BehaviorSubject(undefined); sortFunction = new BehaviorSubject<(a: Server, b: Server) => number>(undefined); favoriteServers = new BehaviorSubject>({}); + isIncreasingPlayerOrder = new BehaviorSubject(null); + isIncreasingCountryOrder = new BehaviorSubject(null); + isIncreasingNameOrder = new BehaviorSubject(null); + isIncreasingFavoriteOrder = new BehaviorSubject(null); serverlist$: Observable<(Server & { isCompatible: boolean; shortVersion: string })[]>; filteredServerlist$: typeof this.serverlist$; clientVersion$: Observable; formSearch = new FormControl(''); - // Server list with search / filter - public isIncreasingPlayerOrder = true; - public isIncreasingCountryOrder = true; - public isIncreasingNameOrder = true; - public isIncreasingFavoriteOrder = true; - - @Output() - public done = new EventEmitter(); - @Output() - public setView = new EventEmitter(); + @Output() public done = new EventEmitter(); + @Output() public setView = new EventEmitter(); constructor( private errorService: ErrorService, @@ -105,7 +102,7 @@ export class ServerListComponent { }); } if (sortFunction) { - servers = servers.sort(sortFunction); + servers = [...servers].sort(sortFunction); } return servers; }), @@ -158,44 +155,60 @@ export class ServerListComponent { await this.saveFavoriteServerList(); } - public sortPlayers(isIncreasingOrder: boolean) { - let sort = ServerListComponent.sortDescendingPlayerCount; - if (isIncreasingOrder) { + public sortPlayerCount(isIncreasingOrder: boolean) { + let sort = null; + if (isIncreasingOrder === true) { sort = ServerListComponent.sortIncreasingPlayerCount; + } else if (isIncreasingOrder === false) { + sort = ServerListComponent.sortDescendingPlayerCount; } - this.sortFunction.next(sort); - this.isIncreasingPlayerOrder = isIncreasingOrder; + this.isIncreasingPlayerOrder.next(isIncreasingOrder); + this.isIncreasingCountryOrder.next(null); + this.isIncreasingNameOrder.next(null); + this.isIncreasingFavoriteOrder.next(null); } public sortCountry(isIncreasingCountryOrder: boolean) { - let sort = ServerListComponent.sortDescendingCountryCount; - if (isIncreasingCountryOrder) { - sort = ServerListComponent.sortIncreasingCountryCount; + let sort = null; + if (isIncreasingCountryOrder === true) { + sort = ServerListComponent.sortIncreasingCountry; + } else if (isIncreasingCountryOrder === false) { + sort = ServerListComponent.sortDescendingCountry; } - this.sortFunction.next(sort); - this.isIncreasingCountryOrder = isIncreasingCountryOrder; + this.isIncreasingPlayerOrder.next(null); + this.isIncreasingCountryOrder.next(isIncreasingCountryOrder); + this.isIncreasingNameOrder.next(null); + this.isIncreasingFavoriteOrder.next(null); } public sortName(isIncreasingNameOrder: boolean) { - let sort = ServerListComponent.sortDescendingNameCount; - if (isIncreasingNameOrder) { - sort = ServerListComponent.sortIncreasingNameCount; + let sort = null; + if (isIncreasingNameOrder === true) { + sort = ServerListComponent.sortIncreasingName; + } else if (isIncreasingNameOrder === false) { + sort = ServerListComponent.sortDescendingName; } - this.sortFunction.next(sort); - this.isIncreasingNameOrder = isIncreasingNameOrder; + this.isIncreasingPlayerOrder.next(null); + this.isIncreasingCountryOrder.next(null); + this.isIncreasingNameOrder.next(isIncreasingNameOrder); + this.isIncreasingFavoriteOrder.next(null); } public sortFavorite(isIncreasingFavoriteOrder: boolean) { - let sort = ServerListComponent.sortDescendingFavoriteCount; - if (isIncreasingFavoriteOrder) { - sort = ServerListComponent.sortIncreasingFavoriteCount; + let sort = null; + if (isIncreasingFavoriteOrder === true) { + sort = ServerListComponent.sortIncreasingFavorite; + } else if (isIncreasingFavoriteOrder === false) { + sort = ServerListComponent.sortDescendingFavorite; } - this.sortFunction.next(sort); - this.isIncreasingFavoriteOrder = isIncreasingFavoriteOrder; + this.isIncreasingPlayerOrder.next(null); + this.isIncreasingCountryOrder.next(null); + this.isIncreasingNameOrder.next(null); + this.isIncreasingFavoriteOrder.next(isIncreasingFavoriteOrder); } // private filterCountryServer(search: string): void { @@ -234,11 +247,11 @@ export class ServerListComponent { return a.player_count - b.player_count; } - static sortDescendingCountryCount(a: Server, b: Server) { - return ServerListComponent.sortIncreasingCountryCount(a, b) * -1; + static sortDescendingCountry(a: Server, b: Server) { + return ServerListComponent.sortIncreasingCountry(a, b) * -1; } - static sortIncreasingCountryCount(a: Server, b: Server) { + static sortIncreasingCountry(a: Server, b: Server) { if (a.country > b.country) { return 1; } else if (a.country < b.country) { @@ -247,19 +260,19 @@ export class ServerListComponent { return 0; } - static sortDescendingNameCount(a: Server, b: Server) { - return ServerListComponent.sortIncreasingNameCount(a, b) * -1; + static sortDescendingName(a: Server, b: Server) { + return ServerListComponent.sortIncreasingName(a, b) * -1; } - static sortIncreasingNameCount(a: Server, b: Server) { + static sortIncreasingName(a: Server, b: Server) { return a.name.localeCompare(b.name); } - static sortDescendingFavoriteCount(a: Server, b: Server) { - return ServerListComponent.sortIncreasingFavoriteCount(a, b) * -1; + static sortDescendingFavorite(a: Server, b: Server) { + return ServerListComponent.sortIncreasingFavorite(a, b) * -1; } - static sortIncreasingFavoriteCount(a: Server, b: Server) { + static sortIncreasingFavorite(a: Server, b: Server) { return (b.isFavorite === a.isFavorite) ? 0 : b.isFavorite ? -1 : 1; } From e68039f52da060bdafe47f3622dc16fd155cc660 Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Tue, 12 Jul 2022 15:22:42 +0200 Subject: [PATCH 18/47] tweak: make XP sync toggleable server side --- Code/server/Services/CharacterService.cpp | 13 ++++++++----- Code/server/Services/PlayerService.cpp | 3 +++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Code/server/Services/CharacterService.cpp b/Code/server/Services/CharacterService.cpp index 2360d0ca7..64c8ab0e1 100644 --- a/Code/server/Services/CharacterService.cpp +++ b/Code/server/Services/CharacterService.cpp @@ -43,6 +43,11 @@ #include #include +namespace +{ +Console::Setting bEnableXpSync{"Gameplay:fGoldLossFactor", "Syncs combat XP within the party", true}; +} + CharacterService::CharacterService(World& aWorld, entt::dispatcher& aDispatcher) noexcept : m_world(aWorld) , m_updateConnection(aDispatcher.sink().connect<&CharacterService::OnUpdate>(this)) @@ -574,15 +579,13 @@ void CharacterService::OnRequestRespawn(const PacketEvent& acMes void CharacterService::OnSyncExperienceRequest(const PacketEvent& acMessage) const noexcept { + if (!bEnableXpSync) + return; + NotifySyncExperience notify; notify.Experience = acMessage.Packet.Experience; const auto& partyComponent = acMessage.pPlayer->GetParty(); - - if (!partyComponent.JoinedPartyId.has_value()) - return; - - spdlog::debug("Sending over experience {} to party {}", notify.Experience, partyComponent.JoinedPartyId.value()); GameServer::Get()->SendToParty(notify, partyComponent, acMessage.GetSender()); } diff --git a/Code/server/Services/PlayerService.cpp b/Code/server/Services/PlayerService.cpp index 57acd18fa..c652b83f4 100644 --- a/Code/server/Services/PlayerService.cpp +++ b/Code/server/Services/PlayerService.cpp @@ -18,7 +18,10 @@ #include #include +namespace +{ Console::Setting fGoldLossFactor{"Gameplay:fGoldLossFactor", "Factor of the amount of gold lost on death", 0.0f}; +} PlayerService::PlayerService(World& aWorld, entt::dispatcher& aDispatcher) noexcept : m_world(aWorld) From b0a17169f1b56ab392009844a277833b6da0fbb8 Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Tue, 12 Jul 2022 15:27:42 +0200 Subject: [PATCH 19/47] fix: bEnableXpSync Co-authored-by: Malivil --- Code/server/Services/CharacterService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/server/Services/CharacterService.cpp b/Code/server/Services/CharacterService.cpp index 64c8ab0e1..fe164a6f9 100644 --- a/Code/server/Services/CharacterService.cpp +++ b/Code/server/Services/CharacterService.cpp @@ -45,7 +45,7 @@ namespace { -Console::Setting bEnableXpSync{"Gameplay:fGoldLossFactor", "Syncs combat XP within the party", true}; +Console::Setting bEnableXpSync{"Gameplay:bEnableXpSync", "Syncs combat XP within the party", true}; } CharacterService::CharacterService(World& aWorld, entt::dispatcher& aDispatcher) noexcept From 91e0314a23c32b55ae01e431f6f25acb211bd04a Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Tue, 12 Jul 2022 15:47:06 +0200 Subject: [PATCH 20/47] fix: quest item re-appearing --- Code/client/Games/Skyrim/TESObjectREFR.cpp | 6 +++--- Code/client/Games/Skyrim/TESObjectREFR.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Code/client/Games/Skyrim/TESObjectREFR.cpp b/Code/client/Games/Skyrim/TESObjectREFR.cpp index 1ecff0d80..bf94bcf3b 100644 --- a/Code/client/Games/Skyrim/TESObjectREFR.cpp +++ b/Code/client/Games/Skyrim/TESObjectREFR.cpp @@ -481,11 +481,11 @@ void TESObjectREFR::SetInventory(const Inventory& aInventory) noexcept for (const Inventory::Entry& entry : aInventory.Entries) { if (entry.Count != 0) - AddOrRemoveItem(entry); + AddOrRemoveItem(entry, true); } } -void TESObjectREFR::AddOrRemoveItem(const Inventory::Entry& arEntry) noexcept +void TESObjectREFR::AddOrRemoveItem(const Inventory::Entry& arEntry, bool aIsSettingInventory) noexcept { ModSystem& modSystem = World::Get().GetModSystem(); @@ -526,7 +526,7 @@ void TESObjectREFR::AddOrRemoveItem(const Inventory::Entry& arEntry) noexcept // TODO(cosideci): this is still flawed. Adding the refr to the quest leader is hard. // It is still recommended that the quest leader loots all quest items. - if (arEntry.IsQuestItem && arEntry.Count > 0) + if (arEntry.IsQuestItem && arEntry.Count > 0 && !aIsSettingInventory) { PlayerCharacter* pPlayer = PlayerCharacter::Get(); diff --git a/Code/client/Games/Skyrim/TESObjectREFR.h b/Code/client/Games/Skyrim/TESObjectREFR.h index dee42dd8a..b4721f8e1 100644 --- a/Code/client/Games/Skyrim/TESObjectREFR.h +++ b/Code/client/Games/Skyrim/TESObjectREFR.h @@ -199,7 +199,7 @@ struct TESObjectREFR : TESForm bool IsItemInInventory(uint32_t aFormID) const noexcept; void SetInventory(const Inventory& acContainer) noexcept; - void AddOrRemoveItem(const Inventory::Entry& arEntry) noexcept; + void AddOrRemoveItem(const Inventory::Entry& arEntry, bool aIsSettingInventory = false) noexcept; void UpdateItemList(TESForm* pUnkForm) noexcept; BSHandleRefObject handleRefObject; From d9c8028376b441cccd4776e8f02cb8ecdbfaa20c Mon Sep 17 00:00:00 2001 From: Sebastian Comans Date: Tue, 12 Jul 2022 12:05:21 +0200 Subject: [PATCH 21/47] feat: reworked the format of errors sent to the client --- .../Services/Generic/TransportService.cpp | 42 ++++++--- .../Messages/AuthenticationResponse.h | 3 +- Code/server/GameServer.cpp | 4 +- .../components/connect/connect.component.ts | 13 ++- .../app/components/error/error.component.html | 2 +- .../app/components/error/error.component.ts | 13 ++- .../server-list/server-list.component.ts | 2 +- .../src/app/services/client.service.ts | 9 +- .../src/app/services/error.service.ts | 85 +++++++++++++++++-- .../src/app/services/group.service.ts | 6 +- Code/skyrim_ui/src/assets/i18n/en.json | 11 +++ 11 files changed, 150 insertions(+), 40 deletions(-) diff --git a/Code/client/Services/Generic/TransportService.cpp b/Code/client/Services/Generic/TransportService.cpp index 0bde646c8..8789d3b1b 100644 --- a/Code/client/Services/Generic/TransportService.cpp +++ b/Code/client/Services/Generic/TransportService.cpp @@ -144,7 +144,7 @@ void TransportService::OnConnected() auto& modSystem = m_world.GetModSystem(); if (pPlayer->GetWorldSpace()) modSystem.GetServerModId(pPlayer->GetWorldSpace()->formID, request.WorldSpaceId); - + modSystem.GetServerModId(pPlayer->parentCell->formID, request.CellId); request.Level = pPlayer->GetLevel(); @@ -187,35 +187,53 @@ void TransportService::HandleAuthenticationResponse(const AuthenticationResponse // error finding - // TODO(vince): these should be more bare bones, but for now this suffices, maybe we should just make a tiny json - // here in the future and give it to the frontend TiltedPhoques::String ErrorInfo; + + ErrorInfo = "{"; + switch (acMessage.Type) { case AR::kWrongVersion: - ErrorInfo = - fmt::format("This server expects version {} but you are on version {}", acMessage.Version, BUILD_COMMIT); + ErrorInfo += "\"error\": \"wrong_version\", \"data\": {"; + ErrorInfo += + fmt::format("\"expectedVersion\": \"{}\", \"version\": \"{}\"", acMessage.Version, BUILD_COMMIT); + ErrorInfo += "}"; break; case AR::kModsMismatch: { - ErrorInfo = "This server has ModPolicy enabled. You were kicked because you have the following mods installed:"; + ErrorInfo += "\"error\": \"mods_mismatch\", \"data\": {\"mods\": ["; + bool first = true; for (const auto& m : acMessage.UserMods.ModList) - ErrorInfo += fmt::format("{}:{}", m.Filename.c_str(), m.Id); - ErrorInfo += "Please remove them to join"; + { + if(!first) + ErrorInfo += ","; + ErrorInfo += fmt::format("[\"{}\",\"{}\"]", m.Filename.c_str(), m.Id); + first = false; + } + ErrorInfo += "]}"; break; } case AR::kClientModsDisallowed: { - ErrorInfo = "This server disallows"; + ErrorInfo += "\"error\": \"client_mods_disallowed\", \"data\": { \"mods\": ["; if (acMessage.SKSEActive) - ErrorInfo += " SKSE"; + ErrorInfo += "\"SKSE\""; if (acMessage.MO2Active) - ErrorInfo += " MO2"; + if (acMessage.SKSEActive) + ErrorInfo += ","; + ErrorInfo += "\"MO2\""; + ErrorInfo += "]}"; + break; + } + case AR::kWrongPassword: { + ErrorInfo += "\"error\": \"wrong_password\""; break; } default: - ErrorInfo = "The server refused connection without reason."; + ErrorInfo += "\"error\": \"no_reason\""; break; } + ErrorInfo += "}"; + ConnectionErrorEvent errorEvent; if (!ErrorInfo.empty()) { diff --git a/Code/encoding/Messages/AuthenticationResponse.h b/Code/encoding/Messages/AuthenticationResponse.h index 300d6f0ec..f15f6c267 100644 --- a/Code/encoding/Messages/AuthenticationResponse.h +++ b/Code/encoding/Messages/AuthenticationResponse.h @@ -14,6 +14,7 @@ struct AuthenticationResponse final : ServerMessage kWrongVersion, kModsMismatch, kClientModsDisallowed, + kWrongPassword, }; AuthenticationResponse() : ServerMessage(Opcode) @@ -31,7 +32,7 @@ struct AuthenticationResponse final : ServerMessage ResponseType Type; bool SKSEActive{false}; - bool MO2Active{false}; + bool MO2Active{false}; String Version; Mods UserMods{}; ServerSettings Settings{}; diff --git a/Code/server/GameServer.cpp b/Code/server/GameServer.cpp index 9618b2f6f..51edc2e10 100644 --- a/Code/server/GameServer.cpp +++ b/Code/server/GameServer.cpp @@ -668,8 +668,8 @@ void GameServer::HandleAuthenticationRequest(const ConnectionId_t aConnectionId, */ else { - spdlog::info("New player {:x} '{}' has a bad token, kicking.", aConnectionId, remoteAddress); - Kick(aConnectionId); + spdlog::info("New player {:x} '{}' has a bad password, kicking.", aConnectionId, remoteAddress); + sendKick(RT::kWrongPassword); } } diff --git a/Code/skyrim_ui/src/app/components/connect/connect.component.ts b/Code/skyrim_ui/src/app/components/connect/connect.component.ts index 029f26669..4175a6d2c 100644 --- a/Code/skyrim_ui/src/app/components/connect/connect.component.ts +++ b/Code/skyrim_ui/src/app/components/connect/connect.component.ts @@ -39,13 +39,11 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { if (state) { this.sound.play(Sound.Success); this.done.next(); - } else { - this.sound.play(Sound.Fail); - + } else if (this.errorService.getError() === '') { // show connection error when there is no more specific error const message = await firstValueFrom( this.translocoService.selectTranslate('COMPONENT.CONNECT.ERROR.CONNECTION'), ); - this.errorService.error(message); + await this.errorService.setError(message); } } }); @@ -56,7 +54,7 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { const message = await firstValueFrom( this.translocoService.selectTranslate('COMPONENT.CONNECT.ERROR.VERSION_MISMATCH'), ); - this.errorService.error(message); + await this.errorService.setError(message); } }); @@ -84,7 +82,7 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { const message = await firstValueFrom( this.translocoService.selectTranslate('COMPONENT.CONNECT.ERROR.INVALID_ADDRESS'), ); - this.errorService.error(message); + await this.errorService.setError(message); return; } @@ -120,7 +118,7 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { @HostListener('window:keydown.escape', ['$event']) // @ts-ignore private activate(event: KeyboardEvent): void { - if (this.errorService.error$.getValue()) { + if (this.errorService.getError()) { this.errorService.removeError(); } else { this.done.next(); @@ -129,4 +127,5 @@ export class ConnectComponent implements OnDestroy, AfterViewInit { event.stopPropagation(); event.preventDefault(); } + } diff --git a/Code/skyrim_ui/src/app/components/error/error.component.html b/Code/skyrim_ui/src/app/components/error/error.component.html index ef8316d2d..bb03be116 100644 --- a/Code/skyrim_ui/src/app/components/error/error.component.html +++ b/Code/skyrim_ui/src/app/components/error/error.component.html @@ -1,5 +1,5 @@ -

{{ error }}

+

- +
- + diff --git a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.scss b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.scss index 0fadf50cb..1d88fb477 100644 --- a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.scss +++ b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.scss @@ -1,16 +1,15 @@ -@import 'env'; +@import "mixins/gapped-vertical"; -@import 'mixins/gapped-vertical'; +@import "env"; -app-disconnect { +:host { @include gapped-vertical($-size-gap); display: flex; flex-direction: column; align-items: center; +} - p { - line-height: $-size-line; - text-align: justify; - } +p { + line-height: $-size-line; } diff --git a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts index edbf93e00..50e93c9ee 100644 --- a/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts +++ b/Code/skyrim_ui/src/app/components/disconnect/disconnect.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, HostListener, Output, ViewEncapsulation } from '@angular/core'; +import { Component, EventEmitter, HostListener, Output } from '@angular/core'; import { ClientService } from '../../services/client.service'; import { Sound, SoundService } from '../../services/sound.service'; @@ -7,7 +7,6 @@ import { Sound, SoundService } from '../../services/sound.service'; selector: 'app-disconnect', templateUrl: './disconnect.component.html', styleUrls: ['./disconnect.component.scss'], - encapsulation: ViewEncapsulation.None, }) export class DisconnectComponent { diff --git a/Code/skyrim_ui/src/app/components/error/error.component.html b/Code/skyrim_ui/src/app/components/error/error.component.html index bb03be116..4e7f9f66d 100644 --- a/Code/skyrim_ui/src/app/components/error/error.component.html +++ b/Code/skyrim_ui/src/app/components/error/error.component.html @@ -1,8 +1,10 @@ - -

- - - + +
+

+ + + +
diff --git a/Code/skyrim_ui/src/app/components/error/error.component.scss b/Code/skyrim_ui/src/app/components/error/error.component.scss index e69de29bb..927f79ca5 100644 --- a/Code/skyrim_ui/src/app/components/error/error.component.scss +++ b/Code/skyrim_ui/src/app/components/error/error.component.scss @@ -0,0 +1,5 @@ +.error-content { + display: flex; + flex-direction: column; + align-items: center; +} diff --git a/Code/skyrim_ui/src/app/components/error/error.component.ts b/Code/skyrim_ui/src/app/components/error/error.component.ts index c4a11032d..5ab0450cd 100644 --- a/Code/skyrim_ui/src/app/components/error/error.component.ts +++ b/Code/skyrim_ui/src/app/components/error/error.component.ts @@ -1,4 +1,4 @@ -import { Component, SecurityContext, ViewEncapsulation } from '@angular/core'; +import { Component, SecurityContext } from '@angular/core'; import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; @@ -9,7 +9,6 @@ import { ErrorService } from '../../services/error.service'; selector: 'app-error', templateUrl: './error.component.html', styleUrls: ['./error.component.scss'], - encapsulation: ViewEncapsulation.None, }) export class ErrorComponent { diff --git a/Code/skyrim_ui/src/app/components/group/group.component.html b/Code/skyrim_ui/src/app/components/group/group.component.html index 4f6b5fe41..a0e9044de 100644 --- a/Code/skyrim_ui/src/app/components/group/group.component.html +++ b/Code/skyrim_ui/src/app/components/group/group.component.html @@ -1,20 +1,20 @@ -
-
+
+
- {{ player.level }} -
-
-
+ {{ player.level }} +
+
{{ player.name }}
-
+
diff --git a/Code/skyrim_ui/src/app/components/group/group.component.scss b/Code/skyrim_ui/src/app/components/group/group.component.scss index 6bc1519e8..cf3e579a6 100644 --- a/Code/skyrim_ui/src/app/components/group/group.component.scss +++ b/Code/skyrim_ui/src/app/components/group/group.component.scss @@ -1,84 +1,60 @@ -#app-group-container { - position: absolute; - display: flex; - flex-direction: column; - flex-wrap: nowrap; - justify-content: flex-start; - padding: 1vw; - width: 16vw; - - .command { - span + button { - margin-left: 25%; - } - } -} - -.app-group-container-wrapper { +.group-container-wrapper { position: fixed; top: 0; left: 0; -} - -@font-face { - font-family: "futura-condensed-medium"; - src: url(../../../assets/fonts/futura-condensed/futura-condensed-medium.otf); -} - -.app-group-member { - font-family: "futura-condensed-medium", "Roboto Condensed", "Trebutchet MS", "Tahoma", "Geneva", - "Verdana", "sans-serif"; - font-size: 1.50em; - color: rgb(192, 192, 192); -} - -.app-group-member-level { - text-align: center; - font-size: 1.2em; - color: rgb(221, 221, 221) -} - -#app-group-member-leader { - display: inline-block; - background: url(../../../assets/images/group/crown.svg) right / cover no-repeat; - width: 1vw; - height: 1vw; -} - -.app-group-member-dead { - display: inline-block; - background: url(../../../assets/images/group/skull.svg) right / cover no-repeat; - width: 1vw; - height: 1vw; -} - -.app-group-member-health { - width: 14vw; - background: url(../../../assets/images/group/healthbar.svg) center / contain no-repeat; - padding-left: 1vw; - padding-right: 1vw; - margin-bottom: 5%; - margin-top: 1%; -} - -.app-group-member-health-value { - height: 0.79vw; - position: relative; - overflow: hidden; - background: url(../../../assets/images/group/healthamount.svg) center / cover no-repeat; -} -.not-loaded { - opacity: 0.6; -} - -.app-group-button { - padding: 0.25vw; - background-color: #292929; - border-radius: 2px; - margin: 1%; -} - -.app-group-button:hover { - box-shadow: 0 0 5px #646464; + .group-container { + position: absolute; + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: flex-start; + padding: 1vw; + width: 16vw; + + .group-member { + font-size: 1.50em; + color: rgb(192, 192, 192); + + &.not-loaded { + opacity: 0.6; + } + + .group-member-level { + text-align: center; + font-size: 1.2em; + color: rgb(221, 221, 221) + } + + .group-member-leader { + display: inline-block; + background: url(../../../assets/images/group/crown.svg) right / cover no-repeat; + width: 1vw; + height: 1vw; + } + + .group-member-dead { + display: inline-block; + background: url(../../../assets/images/group/skull.svg) right / cover no-repeat; + width: 1vw; + height: 1vw; + } + + .group-member-health { + width: 14vw; + background: url(../../../assets/images/group/healthbar.svg) center / contain no-repeat; + padding-left: 1vw; + padding-right: 1vw; + margin-bottom: 5%; + margin-top: 1%; + + .group-member-health-value { + height: 0.79vw; + position: relative; + overflow: hidden; + background: url(../../../assets/images/group/healthamount.svg) center / cover no-repeat; + } + } + } + } } diff --git a/Code/skyrim_ui/src/app/components/group/group.component.ts b/Code/skyrim_ui/src/app/components/group/group.component.ts index 5b4f5549f..93a3dd40c 100644 --- a/Code/skyrim_ui/src/app/components/group/group.component.ts +++ b/Code/skyrim_ui/src/app/components/group/group.component.ts @@ -1,13 +1,13 @@ -import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; +import { Component, OnDestroy, OnInit } from '@angular/core'; import { BehaviorSubject, combineLatestWith, Observable, Subscription, takeUntil, timer } from 'rxjs'; import { map } from 'rxjs/operators'; import { SettingService } from 'src/app/services/setting.service'; +import { fadeInOutAnimation } from '../../animations/fade-in-out.animation'; import { Group } from '../../models/group'; import { Player } from '../../models/player'; import { ClientService } from '../../services/client.service'; import { DestroyService } from '../../services/destroy.service'; import { GroupService } from '../../services/group.service'; -import { animation as popupsAnimation } from '../root/popups.animation'; import { PartyAnchor } from '../settings/settings.component'; @@ -22,8 +22,7 @@ interface GroupPosition { selector: 'app-group', templateUrl: './group.component.html', styleUrls: ['./group.component.scss'], - encapsulation: ViewEncapsulation.None, - animations: [popupsAnimation], + animations: [fadeInOutAnimation], providers: [DestroyService], }) export class GroupComponent implements OnInit, OnDestroy { diff --git a/Code/skyrim_ui/src/app/components/loading/loading.component.scss b/Code/skyrim_ui/src/app/components/loading/loading.component.scss index 033d622e2..61e7c33c0 100644 --- a/Code/skyrim_ui/src/app/components/loading/loading.component.scss +++ b/Code/skyrim_ui/src/app/components/loading/loading.component.scss @@ -1,4 +1,4 @@ -app-loading { +:host { position: fixed; top: 50%; left: 50%; diff --git a/Code/skyrim_ui/src/app/components/loading/loading.component.ts b/Code/skyrim_ui/src/app/components/loading/loading.component.ts index 93e1e4a8d..21a7c03b9 100644 --- a/Code/skyrim_ui/src/app/components/loading/loading.component.ts +++ b/Code/skyrim_ui/src/app/components/loading/loading.component.ts @@ -1,4 +1,4 @@ -import { Component, ViewEncapsulation } from '@angular/core'; +import { Component } from '@angular/core'; import { Observable } from 'rxjs'; import { LoadingService } from '../../services/loading.service'; @@ -7,7 +7,6 @@ import { LoadingService } from '../../services/loading.service'; selector: 'app-loading', templateUrl: './loading.component.html', styleUrls: ['./loading.component.scss'], - encapsulation: ViewEncapsulation.None, }) export class LoadingComponent { diff --git a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.html b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.html index 5fe9499cf..65eb304e2 100644 --- a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.html +++ b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.html @@ -1,4 +1,4 @@ -
+
diff --git a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.scss b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.scss index 43458d339..0b38449a7 100644 --- a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.scss +++ b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.scss @@ -1,16 +1,16 @@ -@import 'env'; +@import "env"; -@import 'functions/mod'; -@import 'mixins/gapped-vertical'; -.notification-popup -{ - width:100%; - height:100%; +@import "functions/mod"; +@import "mixins/gapped-vertical"; + +.notification-popup { + width: 100%; + height: 100%; background-color: rgba($color: #000000, $alpha: 0.7) } -.friendavatar -{ - position:absolute; + +.friendavatar { + position: absolute; top: 50%; left: 13%; transform: translateX(-50%) translateY(-50%); @@ -19,9 +19,9 @@ height: 2vw; background-size: contain; } -.text-connection-popup -{ - position:absolute; + +.text-connection-popup { + position: absolute; top: 50%; left: 56%; width: 64%; @@ -30,24 +30,22 @@ white-space: normal; } -.text-invite-popup -{ +.text-invite-popup { left: 60%; width: 73%; } -.friendstatus -{ +.friendstatus { position: absolute; top: 50%; left: 90.5%; transform: translateX(-50%) translateY(-50%); width: 0.5em; height: 0.5em; - background: #933; + background: #993333; border-radius: 50%; } -.online -{ - background: #393; + +.online { + background: #339933; } diff --git a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts index e6516ce84..90e24d7c6 100644 --- a/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts +++ b/Code/skyrim_ui/src/app/components/notification-popup/notification-popup.component.ts @@ -1,21 +1,20 @@ -import { Component, HostListener, OnInit, ViewEncapsulation } from '@angular/core'; +import { Component, HostListener, OnInit } from '@angular/core'; import { takeUntil } from 'rxjs'; import { environment } from '../../../environments/environment'; +import { fadeInOutAnimation } from '../../animations/fade-in-out.animation'; import { Player } from '../../models/player'; import { NotificationType, PopupNotification } from '../../models/popup-notification'; import { DestroyService } from '../../services/destroy.service'; import { GroupService } from '../../services/group.service'; import { PopupNotificationService } from '../../services/popup-notification.service'; import { animation as popupTestAnimation } from '../popup/popup.animation'; -import { animation as popupsAnimation } from '../root/popups.animation'; @Component({ selector: 'app-notification-popup', templateUrl: './notification-popup.component.html', styleUrls: ['./notification-popup.component.scss'], - encapsulation: ViewEncapsulation.None, - animations: [popupsAnimation, popupTestAnimation], + animations: [fadeInOutAnimation, popupTestAnimation], providers: [DestroyService], }) export class NotificationPopupComponent implements OnInit { diff --git a/Code/skyrim_ui/src/app/components/notifications/notifications.component.scss b/Code/skyrim_ui/src/app/components/notifications/notifications.component.scss index 2b6b255a1..ae6b9ee2a 100644 --- a/Code/skyrim_ui/src/app/components/notifications/notifications.component.scss +++ b/Code/skyrim_ui/src/app/components/notifications/notifications.component.scss @@ -1,16 +1,17 @@ -@import 'env'; +@import "env"; -@import 'functions/mod'; -@import 'mixins/gapped-vertical'; +@import "functions/mod"; +@import "mixins/gapped-vertical"; -app-notifications { + +:host { @include gapped-vertical($-size-gap); +} - p { - color: mod($-color-background, 1); - font-weight: 700; - display: flex; - } +p { + color: mod($-color-background, 1); + font-weight: 700; + display: flex; } .app-notifications-icon { diff --git a/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts b/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts index 1753641c6..7a045b3a8 100644 --- a/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts +++ b/Code/skyrim_ui/src/app/components/notifications/notifications.component.ts @@ -1,4 +1,4 @@ -import { Component, ViewEncapsulation } from '@angular/core'; +import { Component } from '@angular/core'; import { TranslocoService } from '@ngneat/transloco'; import { takeUntil, withLatestFrom } from 'rxjs'; import { ClientService } from '../../services/client.service'; @@ -14,7 +14,6 @@ interface Notification { selector: 'app-notifications', templateUrl: './notifications.component.html', styleUrls: ['./notifications.component.scss'], - encapsulation: ViewEncapsulation.None, providers: [DestroyService], }) export class NotificationsComponent { diff --git a/Code/skyrim_ui/src/app/components/order/order.component.html b/Code/skyrim_ui/src/app/components/order/order.component.html index 4d1a9823b..43b92d2f7 100644 --- a/Code/skyrim_ui/src/app/components/order/order.component.html +++ b/Code/skyrim_ui/src/app/components/order/order.component.html @@ -1,7 +1,5 @@ - diff --git a/Code/skyrim_ui/src/app/components/order/order.component.scss b/Code/skyrim_ui/src/app/components/order/order.component.scss index 0020d8126..7a1c4c3d9 100644 --- a/Code/skyrim_ui/src/app/components/order/order.component.scss +++ b/Code/skyrim_ui/src/app/components/order/order.component.scss @@ -1,4 +1,9 @@ -.sorting-icon { - font-size: 1.5rem; - vertical-align: sub; +.sorting-button { + padding-top: 0; + padding-bottom: 0; + + .sorting-icon { + font-size: 1.3rem; + vertical-align: sub; + } } diff --git a/Code/skyrim_ui/src/app/components/order/order.component.ts b/Code/skyrim_ui/src/app/components/order/order.component.ts index e6afdc4d9..89c42e505 100644 --- a/Code/skyrim_ui/src/app/components/order/order.component.ts +++ b/Code/skyrim_ui/src/app/components/order/order.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; import { faCaretDown, faCaretUp, faSort } from '@fortawesome/free-solid-svg-icons'; import { BehaviorSubject } from 'rxjs'; @@ -13,10 +13,13 @@ export enum SortOrder { selector: 'app-order', templateUrl: './order.component.html', styleUrls: ['./order.component.scss'], - encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, }) export class OrderComponent { + /* ### ENUMS ### */ + readonly SortOrder = SortOrder; + /* ### ICONS ### */ readonly faCaretDown = faCaretDown; readonly faCaretUp = faCaretUp; diff --git a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html index 141e9daa0..23c65c555 100644 --- a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html +++ b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.html @@ -26,7 +26,7 @@
-
+
Lv.NameLocation{{ 'COMPONENT.PARTY_LIST.TABLE_HEADERS.LEVEL' | transloco }}{{ 'COMPONENT.PARTY_LIST.TABLE_HEADERS.NAME' | transloco }}{{ 'COMPONENT.PARTY_LIST.TABLE_HEADERS.LOCATION' | transloco }}
diff --git a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.scss b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.scss index 187935779..09b8b9835 100644 --- a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.scss +++ b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.scss @@ -1,4 +1,4 @@ -app-party-menu { +:host { position: relative; display: flex; flex-direction: column; @@ -20,7 +20,7 @@ app-party-menu { margin-bottom: 0.5rem; } - .container-list { + .server-list { overflow: auto; max-height: 60vh; margin-bottom: 1.0rem; @@ -51,10 +51,6 @@ app-party-menu { padding: 15px; } - #noserv { - margin-top: 3%; - } - .user-action-button { padding: 0.25vw; background-color: #292929; diff --git a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.ts b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.ts index a13df70cc..8bd09f59b 100644 --- a/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.ts +++ b/Code/skyrim_ui/src/app/components/party-menu/party-menu.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component } from '@angular/core'; import { Observable, pluck } from 'rxjs'; import { filter, map } from 'rxjs/operators'; import { Player } from 'src/app/models/player'; @@ -12,7 +12,6 @@ import { PlayerListService } from 'src/app/services/player-list.service'; selector: 'app-party-menu', templateUrl: './party-menu.component.html', styleUrls: ['./party-menu.component.scss'], - encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, }) export class PartyMenuComponent { diff --git a/Code/skyrim_ui/src/app/components/player-list/player-list.component.html b/Code/skyrim_ui/src/app/components/player-list/player-list.component.html index 4491b53ca..aa02b1fea 100644 --- a/Code/skyrim_ui/src/app/components/player-list/player-list.component.html +++ b/Code/skyrim_ui/src/app/components/player-list/player-list.component.html @@ -1,9 +1,9 @@ -
+
{{ 'COMPONENT.PARTY_LIST.NO_OTHER_PLAYERS' | transloco }}
-
+
diff --git a/Code/skyrim_ui/src/app/components/player-list/player-list.component.scss b/Code/skyrim_ui/src/app/components/player-list/player-list.component.scss index d042b7138..ecbe3e3da 100644 --- a/Code/skyrim_ui/src/app/components/player-list/player-list.component.scss +++ b/Code/skyrim_ui/src/app/components/player-list/player-list.component.scss @@ -1,14 +1,10 @@ -app-player-list { +:host { position: relative; display: flex; flex-direction: column; margin-top: 1rem; - #notInParty { - overflow: hidden; - } - - #noPlayers { + .no-players { overflow: hidden; } @@ -16,7 +12,7 @@ app-player-list { opacity: 0; } - .container-list { + .server-list { overflow: auto; max-height: 60vh; @@ -46,10 +42,6 @@ app-player-list { padding: 15px; } - #noserv { - margin-top: 3%; - } - .user-action-button { padding: 0.25vw; background-color: #292929; diff --git a/Code/skyrim_ui/src/app/components/player-list/player-list.component.ts b/Code/skyrim_ui/src/app/components/player-list/player-list.component.ts index 81d6e22f5..23ece736c 100644 --- a/Code/skyrim_ui/src/app/components/player-list/player-list.component.ts +++ b/Code/skyrim_ui/src/app/components/player-list/player-list.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component } from '@angular/core'; import { combineLatest, Observable, pluck, ReplaySubject, share } from 'rxjs'; import { map } from 'rxjs/operators'; import { ClientService } from 'src/app/services/client.service'; @@ -11,7 +11,6 @@ import { Player } from '../../models/player'; selector: 'app-player-list', templateUrl: './player-list.component.html', styleUrls: ['./player-list.component.scss'], - encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, }) export class PlayerListComponent { diff --git a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.scss b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.scss index 10f8ea2ad..b9a0dbc0e 100644 --- a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.scss +++ b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.scss @@ -2,7 +2,7 @@ @import "functions/rem"; -app-player-manager { +:host { position: relative; display: flex; flex-direction: column; diff --git a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts index 28c680e88..c8a6618ca 100644 --- a/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts +++ b/Code/skyrim_ui/src/app/components/player-manager/player-manager.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, HostListener, Output, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Output } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { Sound, SoundService } from '../../services/sound.service'; @@ -12,7 +12,7 @@ export enum PlayerManagerTab { selector: 'app-player-manager', templateUrl: './player-manager.component.html', styleUrls: ['./player-manager.component.scss'], - encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush, }) export class PlayerManagerComponent { diff --git a/Code/skyrim_ui/src/app/components/popup/popup.animation.ts b/Code/skyrim_ui/src/app/components/popup/popup.animation.ts index e1806abcc..9383e19e1 100644 --- a/Code/skyrim_ui/src/app/components/popup/popup.animation.ts +++ b/Code/skyrim_ui/src/app/components/popup/popup.animation.ts @@ -1,10 +1,11 @@ -import { trigger, state, animate, style, transition, query, group } from '@angular/animations'; +import { animate, group, query, state, style, transition, trigger } from '@angular/animations'; + export const animation = trigger('popup', [ state('void', style({ 'visibility': 'hidden', 'opacity': '0', - 'pointer-events': 'none' + 'pointer-events': 'none', })), transition('void => *', [ query('app-window', style({ diff --git a/Code/skyrim_ui/src/app/components/popup/popup.component.html b/Code/skyrim_ui/src/app/components/popup/popup.component.html index 8ba01dd85..cc750378a 100644 --- a/Code/skyrim_ui/src/app/components/popup/popup.component.html +++ b/Code/skyrim_ui/src/app/components/popup/popup.component.html @@ -1,4 +1,4 @@ - + diff --git a/Code/skyrim_ui/src/app/components/popup/popup.component.scss b/Code/skyrim_ui/src/app/components/popup/popup.component.scss index f4d9ef1db..cb6e9c045 100644 --- a/Code/skyrim_ui/src/app/components/popup/popup.component.scss +++ b/Code/skyrim_ui/src/app/components/popup/popup.component.scss @@ -1,6 +1,6 @@ -@import 'env'; +@import "env"; -app-popup { +:host { position: fixed; left: 0; top: 0; @@ -18,6 +18,4 @@ app-popup { } } -app-popup-buttons { - display: flex; -} + diff --git a/Code/skyrim_ui/src/app/components/popup/popup.component.ts b/Code/skyrim_ui/src/app/components/popup/popup.component.ts index 4731b7d2b..fc1a450a7 100644 --- a/Code/skyrim_ui/src/app/components/popup/popup.component.ts +++ b/Code/skyrim_ui/src/app/components/popup/popup.component.ts @@ -1,4 +1,4 @@ -import { Component, ViewEncapsulation } from '@angular/core'; +import { Component } from '@angular/core'; import { animation } from './popup.animation'; @@ -6,7 +6,6 @@ import { animation } from './popup.animation'; selector: 'app-popup', templateUrl: './popup.component.html', styleUrls: ['./popup.component.scss'], - encapsulation: ViewEncapsulation.None, animations: [animation], host: { '[@popup]': 'true' }, }) diff --git a/Code/skyrim_ui/src/app/components/root/controls.animation.ts b/Code/skyrim_ui/src/app/components/root/controls.animation.ts index 50a8df907..76d20481e 100644 --- a/Code/skyrim_ui/src/app/components/root/controls.animation.ts +++ b/Code/skyrim_ui/src/app/components/root/controls.animation.ts @@ -1,10 +1,11 @@ -import { trigger, state, animate, style, transition, query, group } from '@angular/animations'; +import { animate, group, query, state, style, transition, trigger } from '@angular/animations'; + export const animation = trigger('controls', [ state('false', style({ 'visibility': 'hidden', 'opacity': '0', - 'transform': 'translateY(1rem)' + 'transform': 'translateY(1rem)', })), transition('false => true', [ query('.app-root-menu', style({ diff --git a/Code/skyrim_ui/src/app/components/root/notifications.animation.ts b/Code/skyrim_ui/src/app/components/root/notifications.animation.ts index 0441ec18f..857182eab 100644 --- a/Code/skyrim_ui/src/app/components/root/notifications.animation.ts +++ b/Code/skyrim_ui/src/app/components/root/notifications.animation.ts @@ -1,10 +1,11 @@ -import { trigger, state, animate, style, transition } from '@angular/animations'; +import { animate, state, style, transition, trigger } from '@angular/animations'; + export const animation = trigger('notifications', [ state('false', style({ 'visibility': 'hidden', 'opacity': '0', - 'transform': 'translateY(1rem)' + 'transform': 'translateY(1rem)', })), transition('false => true', [ animate('200ms ease-out', style({ diff --git a/Code/skyrim_ui/src/app/components/root/root.component.html b/Code/skyrim_ui/src/app/components/root/root.component.html index d39ac944d..4f51af37b 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.html +++ b/Code/skyrim_ui/src/app/components/root/root.component.html @@ -64,7 +64,7 @@ -
+
diff --git a/Code/skyrim_ui/src/app/components/root/root.component.scss b/Code/skyrim_ui/src/app/components/root/root.component.scss index c4199e8c3..acf91ce4c 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.scss +++ b/Code/skyrim_ui/src/app/components/root/root.component.scss @@ -1,10 +1,10 @@ -@import 'env'; +@import "env"; -@import 'mixins/gapped-vertical'; -@import 'functions/mod'; -@import 'functions/rem'; +@import "mixins/gapped-vertical"; +@import "functions/mod"; +@import "functions/rem"; -app-root { +:host { display: block; &[data-app-root-game=false] { @@ -12,17 +12,17 @@ app-root { $lines: mod($background, 0.1); background: repeating-linear-gradient( - to right, - transparent, - transparent #{$-size-gap}, - $lines #{$-size-gap}, - $lines calc(#{$-size-gap} + 1px) + to right, + transparent, + transparent #{$-size-gap}, + $lines #{$-size-gap}, + $lines calc(#{$-size-gap} + 1px) ), repeating-linear-gradient( - to bottom, - transparent, - transparent #{$-size-gap}, - $lines #{$-size-gap}, - $lines calc(#{$-size-gap} + 1px) + to bottom, + transparent, + transparent #{$-size-gap}, + $lines #{$-size-gap}, + $lines calc(#{$-size-gap} + 1px) ) $background; } @@ -34,25 +34,27 @@ app-root { } } -.app-root-popups { - > app-popup > app-window { - max-width: 30vw; - min-width: 20vw; - } - - > app-popup[data-popup=server] > app-window { - max-width: 50vw; - min-width: 40vw; - } - - > app-popup[data-popup=settings] > app-window { - max-width: 30vw; - min-width: 25vw; - } - - > app-popup[data-popup=playerManager] > app-window { - max-width: 30vw; - min-width: 25vw; +::ng-deep { + .app-root-popups { + > app-popup > app-window { + max-width: 30vw; + min-width: 20vw; + } + + > app-popup[data-popup=server] > app-window { + max-width: 50vw; + min-width: 40vw; + } + + > app-popup[data-popup=settings] > app-window { + max-width: 30vw; + min-width: 25vw; + } + + > app-popup[data-popup=playerManager] > app-window { + max-width: 30vw; + min-width: 25vw; + } } } @@ -108,20 +110,10 @@ app-root { } } -.app-error { - app-window { - @include gapped-vertical($-size-gap); - - display: flex; - flex-direction: column; - align-items: center; - } -} - .app-notification-popup { position: fixed; bottom: $-size-gap; - right: 0%; + right: 0; height: 6%; width: 12%; } diff --git a/Code/skyrim_ui/src/app/components/root/root.component.ts b/Code/skyrim_ui/src/app/components/root/root.component.ts index c23c42af4..12fe97c31 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.ts +++ b/Code/skyrim_ui/src/app/components/root/root.component.ts @@ -1,7 +1,8 @@ -import { Component, HostListener, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; +import { Component, HostListener, OnInit, ViewChild } from '@angular/core'; import { BehaviorSubject, takeUntil } from 'rxjs'; import { PartyInfo } from 'src/app/models/party-info'; import { environment } from '../../../environments/environment'; +import { fadeInOutAnimation } from '../../animations/fade-in-out.animation'; import { Player } from '../../models/player'; import { ClientService } from '../../services/client.service'; import { DestroyService } from '../../services/destroy.service'; @@ -10,7 +11,6 @@ import { ChatComponent } from '../chat/chat.component'; import { GroupComponent } from '../group/group.component'; import { animation as controlsAnimation } from './controls.animation'; import { animation as notificationsAnimation } from './notifications.animation'; -import { animation as popupsAnimation } from './popups.animation'; export enum RootView { @@ -26,8 +26,7 @@ export enum RootView { selector: 'app-root', templateUrl: './root.component.html', styleUrls: ['./root.component.scss'], - encapsulation: ViewEncapsulation.None, - animations: [controlsAnimation, notificationsAnimation, popupsAnimation], + animations: [controlsAnimation, notificationsAnimation, fadeInOutAnimation], host: { 'data-app-root-game': environment.game.toString() }, providers: [DestroyService], }) diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.html b/Code/skyrim_ui/src/app/components/server-list/server-list.component.html index b184ac4ae..6356400b2 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.html +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.html @@ -30,9 +30,9 @@
-
+
-
+
{{ 'COMPONENT.SERVER_LIST.TABLE_HEADERS.NAME' | transloco }} @@ -58,13 +58,13 @@
-
+
{{ server.name }}
{{ server.player_count }}
{{ server.shortVersion }}
-
+
diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss b/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss index 7cadb3012..8c5cc1cf4 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss @@ -3,141 +3,122 @@ @import "env"; -app-server-list { +:host { position: relative; display: block; +} - .scrollbar-offset { - margin-right: rem($-size-font, 16px); - //overflow-y: scroll; - } - - .serverlist-alternative { - margin: 3%; - display: flex; - justify-content: center; - } - - .virtual-viewport { - height: calc(60vh - 38px); - width: 100%; - } +.scrollbar-offset { + margin-right: rem($-size-font, 16px); + //overflow-y: scroll; +} - .search-list-server { - display: inline-block; - background-color: rgba($color: #292929, $alpha: 0.60); - font-size: 0.85rem; - border-radius: 7px; - height: 1.5rem; - width: 8vw; - border: none; - margin-bottom: 1%; - } +.serverlist-alternative { + margin: 3%; + display: flex; + justify-content: center; +} - .buttons-server-list { - float: right; - padding: 0.25vw; - background-color: #292929; - border-radius: 2px; - margin-left: 5%; - } +.virtual-viewport { + height: calc(60vh - 38px); + width: 100%; +} - .container-list { - overflow: auto; - max-height: 60vh; - margin-top: 1rem; +.search-list-server { + display: inline-block; + background-color: rgba($color: #292929, $alpha: 0.60); + font-size: 0.85rem; + border-radius: 7px; + height: 1.5rem; + width: 8vw; + border: none; + margin-bottom: 1%; +} +.buttons-server-list { + float: right; + padding: 0.25vw; + background-color: #292929; + border-radius: 2px; + margin-left: 5%; +} - .servers-list-table { - width: 100%; - border-collapse: collapse; - table-layout: fixed; - - .row { - height: 38px; - display: flex; - align-items: center; - width: 100%; - border-bottom: 1px solid grey; - border-collapse: separate; - - &.odd { - background: transparentize(mod($-color-background, 1), 0.95); - } +.server-list { + overflow: auto; + max-height: 60vh; + margin-top: 1rem; - :first-child { - flex: 1 1 auto; - } - > div { - padding: 5px; - } + .server-list-table { + width: 100%; + border-collapse: collapse; + table-layout: fixed; - &.header { + .row { + height: 38px; + display: flex; + align-items: center; + width: 100%; + border-bottom: 1px solid grey; + border-collapse: separate; - } + &.odd { + background: transparentize(mod($-color-background, 1), 0.95); } - td { - padding: 5px; + :first-child { + flex: 1 1 auto; } - tr { - display: flex; + > div { + padding: 5px; } - th { - text-align: left; - border-bottom: 1px solid grey; - border-collapse: separate; - - button { - padding: 0 0.5rem; + &.header { + & > div { + display: flex; + align-items: center; } } + } - tr:not(:last-child) { - border-bottom: 1px solid grey; - padding: 15px; - } - - .offline { - background-color: #ff9494 - } + .offline { + background-color: #ff9494 + } - .server-compatible { - color: green; - } + .server-compatible { + color: green; + } - .server-incompatible { - color: red; - } + .server-incompatible { + color: red; + } - .join-button { - padding: 0.25vw; - background-color: #292929; - border-radius: 2px; - margin-left: 5%; - float: right; - } + .join-button { + padding: 0.25vw; + background-color: #292929; + border-radius: 2px; + margin-left: 5%; + float: right; + } - .app-server-list-favorite { - text-align: center; - color: grey; + .server-list-favorite { + text-align: center; + color: grey; - &:hover { - color: white; - } + &:hover { + color: white; } + } - .app-server-list-not-favorite { - text-align: center; - color: grey; + .server-list-not-favorite { + text-align: center; + color: grey; - &:hover { - color: white; - } + &:hover { + color: white; } } } } + diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts index 74a4b0935..dd39f1818 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts @@ -1,4 +1,4 @@ -import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Output, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Output } from '@angular/core'; import { faStar as farStar } from '@fortawesome/free-regular-svg-icons'; import { faStar as fasStar } from '@fortawesome/free-solid-svg-icons'; import { loadingFor } from '@ngneat/loadoff'; @@ -19,7 +19,6 @@ import { RootView } from '../root/root.component'; selector: 'app-server-list', templateUrl: './server-list.component.html', styleUrls: ['./server-list.component.scss'], - encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, }) export class ServerListComponent { diff --git a/Code/skyrim_ui/src/app/components/settings/settings.component.scss b/Code/skyrim_ui/src/app/components/settings/settings.component.scss index 480f99ae6..8569a8b79 100644 --- a/Code/skyrim_ui/src/app/components/settings/settings.component.scss +++ b/Code/skyrim_ui/src/app/components/settings/settings.component.scss @@ -2,63 +2,63 @@ @import "functions/rem"; -app-settings { +:host { position: relative; display: block; +} + +.container { + overflow: auto; + max-height: 60vh; + margin-top: 1rem; + padding-right: 15px; - .container { - overflow: auto; - max-height: 60vh; - margin-top: 1rem; - padding-right: 15px; + .settings { + display: flex; + justify-content: space-between; + flex-direction: column; - .settings { + .section { + padding-bottom: 15px; + margin-bottom: rem($-size-font, 2px); + border-bottom: rem($-size-font, 2px) solid; + border-image: url("../../../assets/images/separator/single.svg") 3; display: flex; justify-content: space-between; flex-direction: column; - .section { - padding-bottom: 15px; - margin-bottom: rem($-size-font, 2px); - border-bottom: rem($-size-font, 2px) solid; - border-image: url("../../../assets/images/separator/single.svg") 3; - display: flex; - justify-content: space-between; - flex-direction: column; - - &:not(:first-child) { - margin-top: 15px; - } + &:not(:first-child) { + margin-top: 15px; } + } - .flex-item { - position: relative; - display: flex; - justify-content: space-between; - align-items: center; + .flex-item { + position: relative; + display: flex; + justify-content: space-between; + align-items: center; - .radio-group { - display: flex; - } + .radio-group { + display: flex; } + } - div:not(:last-child) { - margin-bottom: 0.5rem; - } + div:not(:last-child) { + margin-bottom: 0.5rem; + } - hr { - width: 100%; - } + hr { + width: 100%; + } - h2:first-child { - margin-top: 0; - } + h2:first-child { + margin-top: 0; } } +} - .actions { - margin-top: 1rem; - display: flex; - justify-content: center; - } +.actions { + margin-top: 1rem; + display: flex; + justify-content: center; } diff --git a/Code/skyrim_ui/src/app/components/settings/settings.component.ts b/Code/skyrim_ui/src/app/components/settings/settings.component.ts index ae045a653..9ebff9e1c 100644 --- a/Code/skyrim_ui/src/app/components/settings/settings.component.ts +++ b/Code/skyrim_ui/src/app/components/settings/settings.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, HostListener, OnInit, Output, ViewEncapsulation } from '@angular/core'; +import { Component, EventEmitter, HostListener, OnInit, Output } from '@angular/core'; import { ClientService } from 'src/app/services/client.service'; import { SettingService } from 'src/app/services/setting.service'; import { Sound, SoundService } from '../../services/sound.service'; @@ -16,7 +16,6 @@ export enum PartyAnchor { selector: 'app-settings', templateUrl: './settings.component.html', styleUrls: ['./settings.component.scss'], - encapsulation: ViewEncapsulation.None, }) export class SettingsComponent implements OnInit { diff --git a/Code/skyrim_ui/src/app/components/toggle/toggle.component.ts b/Code/skyrim_ui/src/app/components/toggle/toggle.component.ts index 6eee109b3..096245edd 100644 --- a/Code/skyrim_ui/src/app/components/toggle/toggle.component.ts +++ b/Code/skyrim_ui/src/app/components/toggle/toggle.component.ts @@ -1,11 +1,10 @@ -import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; @Component({ selector: 'app-toggle', templateUrl: './toggle.component.html', styleUrls: ['./toggle.component.scss'], - encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, }) export class ToggleComponent { diff --git a/Code/skyrim_ui/src/app/components/window/window.component.scss b/Code/skyrim_ui/src/app/components/window/window.component.scss index 35b9bdf00..07567fda8 100644 --- a/Code/skyrim_ui/src/app/components/window/window.component.scss +++ b/Code/skyrim_ui/src/app/components/window/window.component.scss @@ -2,20 +2,20 @@ @import 'functions/rem'; -app-window { +:host { border: rem($-size-font, 5px) solid; - border-image: url('../../../assets/images/frame/simple.svg') 5 fill; + border-image: url("../../../assets/images/frame/simple.svg") 5 fill; display: block; &[data-app-window-border=fancy] { border: rem($-size-font, 26px) solid; - border-image: url('../../../assets/images/frame/fancy.svg') 26 fill; + border-image: url("../../../assets/images/frame/fancy.svg") 26 fill; } &[data-app-window-border=strip] { border: solid; border-width: rem($-size-font, 7px) rem($-size-font, 39px); - border-image: url('../../../assets/images/frame/strip.svg') 7 39 fill; + border-image: url("../../../assets/images/frame/strip.svg") 7 39 fill; } } diff --git a/Code/skyrim_ui/src/app/components/window/window.component.ts b/Code/skyrim_ui/src/app/components/window/window.component.ts index 4796d9e21..eb5e4771d 100644 --- a/Code/skyrim_ui/src/app/components/window/window.component.ts +++ b/Code/skyrim_ui/src/app/components/window/window.component.ts @@ -1,11 +1,10 @@ -import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core'; +import { Component, HostBinding, Input } from '@angular/core'; @Component({ selector: 'app-window', templateUrl: './window.component.html', styleUrls: ['./window.component.scss'], - encapsulation: ViewEncapsulation.None, }) export class WindowComponent { diff --git a/Code/skyrim_ui/src/app/directives/popup-buttons.directive.ts b/Code/skyrim_ui/src/app/directives/popup-buttons.directive.ts deleted file mode 100644 index 7d3938b60..000000000 --- a/Code/skyrim_ui/src/app/directives/popup-buttons.directive.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Directive } from '@angular/core'; - -@Directive({ - selector: 'app-popup-buttons' -}) -export class PopupButtonsDirective {} diff --git a/Code/skyrim_ui/src/app/models/group.ts b/Code/skyrim_ui/src/app/models/group.ts index 1cbe7915f..931c69cb7 100644 --- a/Code/skyrim_ui/src/app/models/group.ts +++ b/Code/skyrim_ui/src/app/models/group.ts @@ -1,5 +1,3 @@ -import { Player } from "./player"; - export class Group { isEnabled: boolean; owner: number; diff --git a/Code/skyrim_ui/src/app/models/player-list.ts b/Code/skyrim_ui/src/app/models/player-list.ts index db931d7e8..e11c190ac 100644 --- a/Code/skyrim_ui/src/app/models/player-list.ts +++ b/Code/skyrim_ui/src/app/models/player-list.ts @@ -1,4 +1,4 @@ -import { Player } from "./player"; +import { Player } from './player'; export class PlayerList { diff --git a/Code/skyrim_ui/src/app/models/popup-notification.ts b/Code/skyrim_ui/src/app/models/popup-notification.ts index 612695108..bbf219769 100644 --- a/Code/skyrim_ui/src/app/models/popup-notification.ts +++ b/Code/skyrim_ui/src/app/models/popup-notification.ts @@ -1,4 +1,5 @@ -import { Player } from "./player"; +import { Player } from './player'; + export enum NotificationType { Connection = 1, diff --git a/Code/skyrim_ui/src/app/services/asset/asset-decoder.ts b/Code/skyrim_ui/src/app/services/asset/asset-decoder.ts index 3e3832058..f81d1c2f5 100644 --- a/Code/skyrim_ui/src/app/services/asset/asset-decoder.ts +++ b/Code/skyrim_ui/src/app/services/asset/asset-decoder.ts @@ -2,6 +2,7 @@ import { Observable } from 'rxjs'; import { Asset } from './asset'; + export abstract class AssetDecoder> { public abstract decode(buffer: ArrayBuffer): Observable; } diff --git a/Code/skyrim_ui/src/app/services/asset/asset-decoders/audio.asset-decoder.ts b/Code/skyrim_ui/src/app/services/asset/asset-decoders/audio.asset-decoder.ts index 516c76158..bc4ce94c5 100644 --- a/Code/skyrim_ui/src/app/services/asset/asset-decoders/audio.asset-decoder.ts +++ b/Code/skyrim_ui/src/app/services/asset/asset-decoders/audio.asset-decoder.ts @@ -1,9 +1,10 @@ -import { Observable, from as fromPromise } from 'rxjs'; +import { from as fromPromise, Observable } from 'rxjs'; import { map } from 'rxjs/operators'; +import { SettingService } from '../../setting.service'; import { AssetDecoder } from '../asset-decoder'; import { AudioAsset } from '../assets/audio.asset'; -import { SettingService } from '../../setting.service'; + export class AudioAssetDecoder extends AssetDecoder { diff --git a/Code/skyrim_ui/src/app/services/asset/asset-decoders/text.asset-decoder.ts b/Code/skyrim_ui/src/app/services/asset/asset-decoders/text.asset-decoder.ts index 2aab8ddfe..716e6db2b 100644 --- a/Code/skyrim_ui/src/app/services/asset/asset-decoders/text.asset-decoder.ts +++ b/Code/skyrim_ui/src/app/services/asset/asset-decoders/text.asset-decoder.ts @@ -3,6 +3,7 @@ import { Observable, of } from 'rxjs'; import { AssetDecoder } from '../asset-decoder'; import { TextAsset } from '../assets/text.asset'; + export class TextAssetDecoder extends AssetDecoder { public decode(buffer: ArrayBuffer): Observable { return of(new TextAsset(this.decoder.decode(buffer))); diff --git a/Code/skyrim_ui/src/app/services/asset/assets/audio.asset.ts b/Code/skyrim_ui/src/app/services/asset/assets/audio.asset.ts index ac1022b8c..24d7adccd 100644 --- a/Code/skyrim_ui/src/app/services/asset/assets/audio.asset.ts +++ b/Code/skyrim_ui/src/app/services/asset/assets/audio.asset.ts @@ -1,6 +1,7 @@ import { SettingService } from '../../setting.service'; import { Asset } from '../asset'; + export class AudioAsset extends Asset { public constructor(content: AudioBuffer, private settings: SettingService) { super(content); diff --git a/Code/skyrim_ui/src/app/services/asset/assets/text.asset.ts b/Code/skyrim_ui/src/app/services/asset/assets/text.asset.ts index d82c5710f..5580bfca7 100644 --- a/Code/skyrim_ui/src/app/services/asset/assets/text.asset.ts +++ b/Code/skyrim_ui/src/app/services/asset/assets/text.asset.ts @@ -2,6 +2,7 @@ import { Observable, of } from 'rxjs'; import { Asset } from '../asset'; + export class TextAsset extends Asset { public static decode(buffer: ArrayBuffer): Observable { return of(new TextAsset(TextAsset.decoder.decode(buffer))); diff --git a/Code/skyrim_ui/src/env.scss b/Code/skyrim_ui/src/env.scss index 257b3e96e..08464a51c 100644 --- a/Code/skyrim_ui/src/env.scss +++ b/Code/skyrim_ui/src/env.scss @@ -1,10 +1,14 @@ +@import "functions/rem"; + $-size-font: 14px; $-size-line: 1.43; $-size-gap: 1rem; -$-color-background: #000; +$-color-background: #000000; + +$-font-default: "futura-condensed-medium", "Roboto Condensed", "Trebutchet MS", "Tahoma", "Geneva", +"Verdana", "sans-serif"; -$-font-default: 'futura-condensed-medium', 'Roboto Condensed', 'Trebutchet MS', 'Tahoma', 'Geneva', - 'Verdana', 'sans-serif'; +$-time-transition: 200ms; -$-time-transition: 200ms; \ No newline at end of file +$scrollbar: rem($-size-font, 16px); diff --git a/Code/skyrim_ui/src/index.html b/Code/skyrim_ui/src/index.html index 31f34bab6..474814cf9 100644 --- a/Code/skyrim_ui/src/index.html +++ b/Code/skyrim_ui/src/index.html @@ -8,7 +8,7 @@ - - + + diff --git a/Code/skyrim_ui/src/styles.scss b/Code/skyrim_ui/src/styles.scss index e1a399408..6b4d8e6b2 100644 --- a/Code/skyrim_ui/src/styles.scss +++ b/Code/skyrim_ui/src/styles.scss @@ -3,6 +3,14 @@ @import "env"; +@font-face { + font-family: "futura-condensed-medium"; + src: url(assets/fonts/futura-condensed/futura-condensed-medium.otf); +} + +* { + font-family: $-font-default; +} input { font-size: 1rem; @@ -12,7 +20,6 @@ input::placeholder { font-size: 1rem !important; } - ::selection { color: $-color-background; background: mod($-color-background, 1); @@ -38,14 +45,6 @@ select { line-height: 1em; } -button, -input:not([type=checkbox]), -textarea, -optgroup, -select { - font-family: $-font-default; -} - input:not([type=checkbox]), textarea, select { @@ -179,9 +178,6 @@ button { font-size: calc(16 * 100vw / 1920); } -$scrollbar: rem($-size-font, 16px); - - ::-webkit-scrollbar { width: $scrollbar; height: $scrollbar; @@ -229,11 +225,6 @@ input[type=checkbox] { } } -html { - font-family: $-font-default; - //text-shadow: 0.1rem 0.1rem 0.05rem #000; -} - body { margin: 0; cursor: default; @@ -249,9 +240,5 @@ app-root { html, body { height: 100%; -} - -body { margin: 0; - font-family: $-font-default; } From 2b2585794433a8cd13ccc2e4107902ef0ab944e7 Mon Sep 17 00:00:00 2001 From: Robbe Bryssinck Date: Wed, 13 Jul 2022 10:59:46 +0200 Subject: [PATCH 38/47] tweak: refactored placement of player faction --- Code/client/Games/Skyrim/Actor.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/Code/client/Games/Skyrim/Actor.cpp b/Code/client/Games/Skyrim/Actor.cpp index df7512401..dfce0020a 100644 --- a/Code/client/Games/Skyrim/Actor.cpp +++ b/Code/client/Games/Skyrim/Actor.cpp @@ -410,18 +410,6 @@ void Actor::SetFactions(const Factions& acFactions) noexcept SetFactionRank(pFaction, entry.Rank); } } - - if (GetExtension()->IsPlayer()) - { - auto pPotentialFollower = Cast(TESForm::GetById(0x5C84D)); - SetFactionRank(pPotentialFollower, 1); - - auto pCurrentFollower = Cast(TESForm::GetById(0x5C84E)); - SetFactionRank(pCurrentFollower, 1); - - auto pPlayerFaction = Cast(TESForm::GetById(0xDB1)); - SetFactionRank(pPlayerFaction, 1); - } } void Actor::SetFactionRank(const TESFaction* apFaction, int8_t aRank) noexcept @@ -445,7 +433,14 @@ void Actor::SetPlayerRespawnMode() noexcept SetEssentialEx(true); // Makes the player go in an unrecoverable bleedout state SetNoBleedoutRecovery(true); - SetPlayerTeammate(true); + + if (formID != 0x14) + { + SetPlayerTeammate(true); + + auto pPlayerFaction = Cast(TESForm::GetById(0xDB1)); + SetFactionRank(pPlayerFaction, 1); + } } void Actor::SetPlayerTeammate(bool aSet) noexcept From 721929610425929099d4e338a1f3904027be4a56 Mon Sep 17 00:00:00 2001 From: Sebastian Comans Date: Wed, 13 Jul 2022 11:21:50 +0200 Subject: [PATCH 39/47] tweak: make chat/general menu barely visible when another window is open --- Code/skyrim_ui/src/app/components/root/root.component.html | 6 +++++- Code/skyrim_ui/src/app/components/root/root.component.scss | 4 ++++ Code/skyrim_ui/src/app/components/root/root.component.ts | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Code/skyrim_ui/src/app/components/root/root.component.html b/Code/skyrim_ui/src/app/components/root/root.component.html index 4f51af37b..128fdf2de 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.html +++ b/Code/skyrim_ui/src/app/components/root/root.component.html @@ -9,7 +9,11 @@ -
+
- +
+ + +
+
+ +
+ + +
+
diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss b/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss index af7aae6b8..3b9309893 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.scss @@ -9,6 +9,37 @@ width: 70vw; } +.server-list-action-bar { + display: flex; + justify-content: space-between; + margin-bottom: 1%; + + .server-list-filters { + display: flex; + align-items: center; + gap: 4em; + + .hide-mismatched-servers-checkbox { + display: flex; + align-items: center; + gap: 0.5em; + } + } + + .server-list-actions { + display: flex; + justify-content: end; + align-items: center; + + button { + padding: 0.25vw; + background-color: #292929; + border-radius: 2px; + margin-left: 5%; + } + } +} + .scrollbar-offset { margin-right: rem($-size-font, 16px); //overflow-y: scroll; @@ -33,15 +64,6 @@ height: 1.5rem; width: 8vw; border: none; - margin-bottom: 1%; -} - -.buttons-server-list { - float: right; - padding: 0.25vw; - background-color: #292929; - border-radius: 2px; - margin-left: 5%; } .server-list { diff --git a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts index bfd43f080..ef7a2ae30 100644 --- a/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts +++ b/Code/skyrim_ui/src/app/components/server-list/server-list.component.ts @@ -36,6 +36,7 @@ export class ServerListComponent { refreshServerlist = new BehaviorSubject(undefined); sortFunctions = new BehaviorSubject([]); favoriteServers = new BehaviorSubject>({}); + hideVersionMismatchedServers = new BehaviorSubject(true); playerCountOrdering = new BehaviorSubject(SortOrder.NONE); countryOrdering = new BehaviorSubject(SortOrder.NONE); serverNameOrdering = new BehaviorSubject(SortOrder.NONE); @@ -100,9 +101,13 @@ export class ServerListComponent { distinctUntilChanged(), throttleTime(300), ), + this.hideVersionMismatchedServers, this.sortFunctions, ), - map(([servers, searchPhrase, sortFunction]) => { + map(([servers, searchPhrase, hideVersionMismatchedServers, sortFunction]) => { + if (hideVersionMismatchedServers) { + servers = servers.filter(server => server.isCompatible); + } if (searchPhrase) { servers = servers.filter((server: Server) => { return server.name.toLowerCase().includes(searchPhrase) || server.desc.toLowerCase().includes(searchPhrase); diff --git a/Code/skyrim_ui/src/assets/i18n/en.json b/Code/skyrim_ui/src/assets/i18n/en.json index 6470a4908..c19930d3c 100644 --- a/Code/skyrim_ui/src/assets/i18n/en.json +++ b/Code/skyrim_ui/src/assets/i18n/en.json @@ -91,6 +91,7 @@ "BACK": "Back", "LOADING": "Loading...", "NO_SERVERS": "No public server available", + "HIDE_MISMATCHED_SERVER": "Hide servers with incompatible version", "TABLE_HEADERS": { "NAME": "Server Name", "PLAYERS": "Players", From 01d62df9da0dc1d80d6ce4bd4fea78f558592018 Mon Sep 17 00:00:00 2001 From: Sebastian Comans Date: Wed, 13 Jul 2022 13:06:25 +0200 Subject: [PATCH 45/47] tweak: remove the wide styling for the root controls --- .../src/app/components/root/root.component.html | 2 +- .../src/app/components/root/root.component.scss | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/Code/skyrim_ui/src/app/components/root/root.component.html b/Code/skyrim_ui/src/app/components/root/root.component.html index 128fdf2de..1d88226cc 100644 --- a/Code/skyrim_ui/src/app/components/root/root.component.html +++ b/Code/skyrim_ui/src/app/components/root/root.component.html @@ -11,8 +11,8 @@