From bd85dbbd5475585ea17a9a4e06db66284f476057 Mon Sep 17 00:00:00 2001 From: MulyukovAidar Date: Mon, 10 Jun 2024 14:57:22 +0400 Subject: [PATCH] Dev (#153) * Update timeline to use new formatting model API (5.1+) (#137) * Add new formatting model units * Update capabilities.json to new formatting model API * Update version to 2.5.0 * Refactor Calendar into using interfaces * Upgrade to new formatting model API * Remove jquery, fix tests * Migrate from puppeteer to playwright-chromium * Split d3 into submodules like d3-selection * Update dependencies Previously visual didn't work with node v20.10.0, but after updating the dependencies it works now. * Set default value "false" for ScrollAutoAdjustment * Fix top level slices to display "show" button on the cards * Add stroke color and stroke width settings * Add cursor color settings * Add an option to specify the width, height manually * Add scroll behavior When scrolling on the cell it increases/decreases the date period. * Add cell gap setting * Revert "Add scroll behavior" This reverts commit 3a0e97061188ac0f3f73a7fdd243b475d6a91caf. * Decrease min cell width. Add missing localization keys. * Fix build status in README.md * Use 4 digit number in version * Update build.yml to run audit, outdated, linter * Rename ambiguous topLevelSlice to show field. Revert MinCellWidth to fix a breaking change. * Fix the resizing issue when enabling manual sizing. When enabling manual sizing width and height of the cell is changed to the last saved by the user. Instead, the expected behavior is so width and height should be the same as before enabling manual sizing. It requires persisting current width and height of cells, but it triggers an additional update. * Fix uneven stroke width around cells When increasing stroke-width around the cells the height of the cell should be decreasing, otherwise the stroke is uneven. * Fix vertical cursor shift when changing stroke width * Update packages * Fix npm vulnerabilities * Remove core-js * Update powerbi-visuals-api to 5.7.0 * Fix the issue with replacing old Timeline visual with newer version (#138) * Add "Visual_Short_Description", "Visual_Long_Description" localization keys * Fix the issue with upgrading the visual version inside the report When user replaces the visual with new version the visual didn't render because some ItemDropDown values were not set. * Fix eslint errors * New translations * Fix error with rendering when ItemDropDown values are undefined (#139) * Fix error with rendering when ItemDropDown values are undefined * Fix tests * New translations * Fix backwards compatibility (#143) * Fix error with rendering when ItemDropDown values are undefined * Fix tests * Set topLevelSlice for "Cursor", "First Day of Week" formatting settings cards * Update API to 5.8.0 * Fix height and width calculation when enableManualSizing is enabled * Limit max text size in range header and labels * Rollback capabilities.json to previous configuration to keep backwards compatibility * Update packages Bump version to 2.5.0.0 * Remove jquery * Update GitHub actions to use node 18, 20 * Add TimelineSettingsModel.ts * Refactor calendar interfaces * Migrate to formatting model * Add visual short and long description localization keys * Fix granularity value backwards compatibility (use numbers instead of string) * Add cursor formatting settings * Add "Cells" card settings: stroke width and gap width * Add formatting setting to manually resize cell height and width * Split D3 into submodules like d3-selection * Update packages * Update API to 5.9.0 * Refactor event handlers into behavior.ts * Refactor behavior.ts into static * Fix karma.config * Fix bugs with click handler and selecting period (#148) * Disable "Calendar" and "First day of week" settings when WeekStandard is set to IS0 8601 * Fix cell click handler (passed invalid selected index) * Fix uninitialized start date when date from filters is less than date from DataView * Increase font max size for range header to 40 * Update outdated packages * New translations * New translations * New translations --------- Co-authored-by: adiletelf <74559101+adiletelf@users.noreply.github.com> Co-authored-by: pbicvloc <104190707+pbicvloc@users.noreply.github.com> --- .editorconfig | 2 +- .github/workflows/build.yml | 15 +- .gitignore | 3 + .travis.yml | 17 - CHANGELOG.md | 31 + README.md | 6 +- capabilities.json | 136 +- karma.conf.ts | 22 +- package-lock.json | 15796 +++++++--------- package.json | 88 +- pbiviz.json | 6 +- src/behavior.ts | 83 + src/calendars/calendar.ts | 31 +- src/calendars/calendarFactory.ts | 21 +- src/calendars/calendarISO8061.ts | 37 +- src/calendars/month.ts | 15 + .../{weekStandards.ts => weekStandard.ts} | 4 +- src/calendars/weekday.ts | 9 + src/granularity/dayGranularity.ts | 2 +- src/granularity/granularityBase.ts | 28 +- src/granularity/granularityRenderProps.ts | 4 +- src/granularity/granularityType.ts | 10 +- src/granularity/monthGranularity.ts | 2 +- src/granularity/quarterGranularity.ts | 2 +- src/granularity/weekGranularity.ts | 2 +- src/granularity/yearGranularity.ts | 2 +- src/settings/calendarSettings.ts | 30 - src/settings/cellsSettings.ts | 32 - src/settings/cursorSettings.ts | 29 - src/settings/forceSelectionSettings.ts | 30 - src/settings/generalSettings.ts | 31 - src/settings/granularitySettings.ts | 39 - src/settings/labelsSettings.ts | 32 - src/settings/scrollAutoAdjustment.ts | 30 - src/settings/settings.ts | 52 - src/settings/weekDaySettings.ts | 30 - .../weeksDetermintaionStandardsSettings.ts | 31 - src/timeLine.ts | 537 +- src/timeLineSettingsModel.ts | 474 + src/utils.ts | 10 +- stringResources/ar-SA/resources.resjson | 20 +- stringResources/bg-BG/resources.resjson | 20 +- stringResources/ca-ES/resources.resjson | 20 +- stringResources/cs-CZ/resources.resjson | 20 +- stringResources/da-DK/resources.resjson | 20 +- stringResources/de-DE/resources.resjson | 20 +- stringResources/el-GR/resources.resjson | 20 +- stringResources/en-US/resources.resjson | 21 +- stringResources/es-ES/resources.resjson | 20 +- stringResources/et-EE/resources.resjson | 20 +- stringResources/eu-ES/resources.resjson | 20 +- stringResources/fi-FI/resources.resjson | 20 +- stringResources/fr-FR/resources.resjson | 20 +- stringResources/gl-ES/resources.resjson | 20 +- stringResources/he-IL/resources.resjson | 20 +- stringResources/hi-IN/resources.resjson | 20 +- stringResources/hr-HR/resources.resjson | 20 +- stringResources/hu-HU/resources.resjson | 20 +- stringResources/id-ID/resources.resjson | 20 +- stringResources/it-IT/resources.resjson | 20 +- stringResources/ja-JP/resources.resjson | 20 +- stringResources/kk-KZ/resources.resjson | 20 +- stringResources/ko-KR/resources.resjson | 20 +- stringResources/lt-LT/resources.resjson | 20 +- stringResources/lv-LV/resources.resjson | 20 +- stringResources/ms-MY/resources.resjson | 20 +- stringResources/nb-NO/resources.resjson | 20 +- stringResources/nl-NL/resources.resjson | 20 +- stringResources/pl-PL/resources.resjson | 20 +- stringResources/pt-BR/resources.resjson | 20 +- stringResources/pt-PT/resources.resjson | 20 +- stringResources/ro-RO/resources.resjson | 20 +- stringResources/ru-RU/resources.resjson | 20 +- stringResources/sk-SK/resources.resjson | 20 +- stringResources/sl-SI/resources.resjson | 20 +- stringResources/sr-Cyrl-RS/resources.resjson | 20 +- stringResources/sr-Latn-RS/resources.resjson | 20 +- stringResources/sv-SE/resources.resjson | 20 +- stringResources/th-TH/resources.resjson | 20 +- stringResources/tr-TR/resources.resjson | 20 +- stringResources/uk-UA/resources.resjson | 20 +- stringResources/vi-VN/resources.resjson | 20 +- stringResources/zh-CN/resources.resjson | 20 +- stringResources/zh-TW/resources.resjson | 20 +- style/visual.less | 9 +- test.webpack.config.js | 23 - test/visual.test.ts | 394 +- test/visualBuilder.ts | 82 +- tslint.json | 9 - 89 files changed, 8485 insertions(+), 10674 deletions(-) delete mode 100644 .travis.yml create mode 100644 src/behavior.ts create mode 100644 src/calendars/month.ts rename src/calendars/{weekStandards.ts => weekStandard.ts} (52%) create mode 100644 src/calendars/weekday.ts delete mode 100644 src/settings/calendarSettings.ts delete mode 100644 src/settings/cellsSettings.ts delete mode 100644 src/settings/cursorSettings.ts delete mode 100644 src/settings/forceSelectionSettings.ts delete mode 100644 src/settings/generalSettings.ts delete mode 100644 src/settings/granularitySettings.ts delete mode 100644 src/settings/labelsSettings.ts delete mode 100644 src/settings/scrollAutoAdjustment.ts delete mode 100644 src/settings/settings.ts delete mode 100644 src/settings/weekDaySettings.ts delete mode 100644 src/settings/weeksDetermintaionStandardsSettings.ts create mode 100644 src/timeLineSettingsModel.ts delete mode 100644 tslint.json diff --git a/.editorconfig b/.editorconfig index 084157b..303feaf 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,7 +8,7 @@ trim_trailing_whitespace = true indent_style = space [*.json] -indent_size = 2 +indent_size = 4 [*.less] indent_size = 4 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 78c2b78..166cd3c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,13 +1,13 @@ -# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# This workflow will do a clean installation of node dependencies, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions name: build on: push: - branches: [ master ] + branches: [ main, dev, certification ] pull_request: - branches: [ master ] + branches: [ main, dev, certification ] jobs: build: @@ -16,7 +16,7 @@ jobs: strategy: matrix: - node-version: [12.x] + node-version: [18.x, 20.x] steps: - uses: actions/checkout@v2 @@ -25,7 +25,12 @@ jobs: with: node-version: ${{ matrix.node-version }} - run: npm ci - - run: npm run lint + - run: npm audit + continue-on-error: true + - run: npm outdated + continue-on-error: true + - run: npm run eslint + - run: npm run package - run: npm test env: CI: true diff --git a/.gitignore b/.gitignore index ac2564e..99eb500 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ coverage webpack.statistics.html webpack.statistics.dev.html webpack.statistics.prod.html + +## JetBrains +.idea/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c3a9097..0000000 --- a/.travis.yml +++ /dev/null @@ -1,17 +0,0 @@ -os: - - linux -sudo: required -dist: trusty -language: node_js -node_js: - - "10" -addons: - chrome: stable -install: - - npm install -script: - - npm run test -after_success: - - node node_modules/coveralls/bin/coveralls.js < coverage/lcov.info -notifications: - email: false diff --git a/CHANGELOG.md b/CHANGELOG.md index c8cb7b4..d16aecb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,34 @@ +## 2.5.4 +* Disable "Calendar" and "First day of week" settings when WeekStandard is set to IS0 860 +* Fix uninitialized start date when date from filters is less than date from DataView +* Fix cell click handler (passed invalid selected index) + +## 2.5.3 +* Update API to 5.9.0 +* Fix npm vulnerabilities +* Refactor event handlers into behavior.ts + +## 2.5.2 +* Fix backwards compatibility with 2.4.0 +* Packages update + +## 2.5.1 +* powerbi-visuals-api was updated to 5.8.0 +* Packages update + + +## 2.5.0 +* powerbi-visuals-api was updated to 5.7.0 +* Updated to new formatting model api provided +* Migrate from puppeteer to playwright +* Split d3 package into d3-selection, d3-shape, d3-drag, d3-array. Update d3 to v6 +* Remove lodash, jquery, tslint, ts-node, istanbul-reporter +* Update dependencies +* Add missing localization keys +* Add cursor color settings +* Add stroke color settings +* Update build.yml to use node 18, 20 + ## 2.3.0 * A new option group "Weeks Determination Standards" containing a list of two items where the first one enables US weeks numbering (default) and the second one enables ISO 8601 weeks numbering diff --git a/README.md b/README.md index 16169d0..a1ffaca 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Timeline Slicer -[![Build Status](https://travis-ci.org/Microsoft/powerbi-visuals-timeline.svg?branch=master)](https://travis-ci.org/Microsoft/powerbi-visuals-timeline) [![Coverage Status](https://coveralls.io/repos/github/Microsoft/powerbi-visuals-timeline/badge.svg?branch=master)](https://coveralls.io/github/Microsoft/powerbi-visuals-timeline?branch=master) +[![build status](https://github.com/microsoft/powerbi-visuals-timeline/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/microsoft/powerbi-visuals-timeline/actions/workflows/build.yml) > Graphical date range selector to use for filtering dates @@ -11,11 +11,11 @@ The Timeline slicer is a graphical date range selector used as a filtering compo How often do you have to filter your data for a date range or at higher level such as month or quarter? Every single time. Right? Filtering is pain when you have to click through large numbers of date values to select the range you want. Changing the filter granularity from months, the quarters and years on the fly is super tedious. Well, it used to be super tedious. -The Timeline slicer is going to make this experience a breeze. With this simple slider control for dates, all you need to do, is just click and drag to the range that you want. You can also switch to a Year, Quarter or Month view to +The Timeline slicer is going to make this experience a breeze. With this simple slider control for dates, all you need to do, is just click and drag to the range that you want. You can also switch to a Year, Quarter or Month view to select ranges even at a higher level than dates. You can simply click on the slicer to select a single value or click the edge and drag it to the range that you want. You can also change the background & selection color and number of other formatting options to control the look-n-feel. SHIFT+Click also works for selecting a range. -See also [Timeline Slicer at Microsoft AppSource](https://appsource.microsoft.com/en-us/product/power-bi-visuals/WA104380786) \ No newline at end of file +See also [Timeline Slicer at Microsoft AppSource](https://appsource.microsoft.com/en-us/product/power-bi-visuals/WA104380786) diff --git a/capabilities.json b/capabilities.json index 3236f3d..4e4fd97 100644 --- a/capabilities.json +++ b/capabilities.json @@ -45,20 +45,32 @@ } } }, + "cursor": { + "properties": { + "show": { + "type": { + "bool": true + } + }, + "color": { + "type": { + "fill": { + "solid": { + "color": true + } + } + } + } + } + }, "forceSelection": { - "displayName": "Force selection", - "displayNameKey": "Visual_ForceSelection", "properties": { "currentPeriod": { - "displayName": "Current period", - "displayNameKey": "Visual_CurrentPeriod", "type": { "bool": true } }, "latestAvailableDate": { - "displayName": "Latest available period", - "displayNameKey": "Visual_LatestAvailableDate", "type": { "bool": true } @@ -66,12 +78,8 @@ } }, "weeksDetermintaionStandards": { - "displayName": "Weeks Determination Standards", - "displayNameKey": "Visual_Weeks_Determination_Standards", "properties": { "weekStandard": { - "displayName": "Standard", - "displayNameKey": "Visual_Week_Standard", "type": { "enumeration": [ { @@ -90,12 +98,8 @@ } }, "calendar": { - "displayName": "Fiscal Year", - "displayNameKey": "Visual_FiscalYear", "properties": { "month": { - "displayName": "Month", - "displayNameKey": "Visual_Month", "type": { "enumeration": [ { @@ -162,8 +166,6 @@ } }, "day": { - "displayName": "Day", - "displayNameKey": "Visual_Day", "type": { "numeric": true } @@ -171,19 +173,13 @@ } }, "weekDay": { - "displayName": "First Day of Week", - "displayNameKey": "Visual_FirstDayOfWeek", "properties": { "daySelection": { - "displayName": "Day Selection", - "displayNameKey": "Visual_Day_Selection", "type": { "bool": true } }, "day": { - "displayName": "Day", - "displayNameKey": "Visual_Day", "type": { "enumeration": [ { @@ -227,19 +223,13 @@ } }, "rangeHeader": { - "displayName": "Range Header", - "displayNameKey": "Visual_RangeHeader", "properties": { "show": { - "displayName": "Show", - "displayNameKey": "Visual_Show", "type": { "bool": true } }, "fontColor": { - "displayName": "Font color", - "displayNameKey": "Visual_FontColor", "type": { "fill": { "solid": { @@ -249,8 +239,6 @@ } }, "textSize": { - "displayName": "Text Size", - "displayNameKey": "Visual_TextSize", "type": { "numeric": true } @@ -258,12 +246,17 @@ } }, "cells": { - "displayName": "Cells", - "displayNameKey": "Visual_Cells", "properties": { "fillSelected": { - "displayName": "Selected cell color", - "displayNameKey": "Visual_Cell_SelectedColor", + "type": { + "fill": { + "solid": { + "color": true + } + } + } + }, + "strokeSelected": { "type": { "fill": { "solid": { @@ -273,8 +266,6 @@ } }, "fillUnselected": { - "displayName": "Unselected cell color", - "displayNameKey": "Visual_Cell_UnselectedColor", "type": { "fill": { "solid": { @@ -284,23 +275,53 @@ } } } + }, + "strokeUnselected": { + "type": { + "fill": { + "solid": { + "color": { + "nullable": true + } + } + } + } + }, + "strokeWidth": { + "type": { + "numeric": true + } + }, + "gapWidth": { + "type": { + "numeric": true + } + }, + "enableManualSizing": { + "type": { + "bool": true + } + }, + "width": { + "type": { + "numeric": true + } + }, + "height": { + "type": { + "numeric": true + } } } }, "granularity": { - "displayName": "Granularity", - "displayNameKey": "Visual_Granularity", "properties": { "show": { - "displayName": "Show", - "displayNameKey": "Visual_Show", "type": { "bool": true } }, "scaleColor": { - "displayName": "Scale color", - "displayNameKey": "Visual_ScaleColor", "type": { "fill": { "solid": { @@ -310,8 +331,6 @@ } }, "sliderColor": { - "displayName": "Slider color", - "displayNameKey": "Visual_SliderColor", "type": { "fill": { "solid": { @@ -321,8 +340,6 @@ } }, "granularity": { - "displayName": "Granularity", - "displayNameKey": "Visual_Granularity", "type": { "enumeration": [ { @@ -355,36 +372,26 @@ "filterState": true }, "granularityYearVisibility": { - "displayName": "Year visibility", - "displayNameKey": "Visual_GranularityYearVisibility", "type": { "bool": true } }, "granularityQuarterVisibility": { - "displayName": "Quarter visibility", - "displayNameKey": "Visual_GranularityQuarterVisibility", "type": { "bool": true } }, "granularityMonthVisibility": { - "displayName": "Month visibility", - "displayNameKey": "Visual_GranularityMonthVisibility", "type": { "bool": true } }, "granularityWeekVisibility": { - "displayName": "Week visibility", - "displayNameKey": "Visual_GranularityWeekVisibility", "type": { "bool": true } }, "granularityDayVisibility": { - "displayName": "Day visibility", - "displayNameKey": "Visual_GranularityDayVisibility", "type": { "bool": true } @@ -392,26 +399,18 @@ } }, "labels": { - "displayName": "Labels", - "displayNameKey": "Visual_Labels", "properties": { "show": { - "displayName": "Show", - "displayNameKey": "Visual_Show", "type": { "bool": true } }, "displayAll": { - "displayName": "Display all", - "displayNameKey": "Visual_DisplayAll", "type": { "bool": true } }, "fontColor": { - "displayName": "Font color", - "displayNameKey": "Visual_FontColor", "type": { "fill": { "solid": { @@ -421,8 +420,6 @@ } }, "textSize": { - "displayName": "Text Size", - "displayNameKey": "Visual_TextSize", "type": { "numeric": true } @@ -430,12 +427,8 @@ } }, "scrollAutoAdjustment": { - "displayName": "Scroll position auto adjustment", - "displayNameKey": "Visual_ScrollAutoAdjustment", "properties": { "show": { - "displayName": "Show", - "displayNameKey": "Visual_Show", "type": { "bool": true } @@ -443,6 +436,7 @@ } } }, + "privileges": [], "supportsHighlight": true, "supportsSynchronizingFilterState": true -} \ No newline at end of file +} diff --git a/karma.conf.ts b/karma.conf.ts index 65a7fec..7911e66 100644 --- a/karma.conf.ts +++ b/karma.conf.ts @@ -26,7 +26,6 @@ "use strict"; -process.env.CHROME_BIN = require("puppeteer").executablePath(); const path = require("path"); @@ -35,22 +34,18 @@ const tsconfig = require("./tsconfig.json"); const testRecursivePath = "test/*.test.ts"; const coverageFolder = "coverage"; +process.env.CHROME_BIN = require("playwright-chromium").chromium.executablePath(); + module.exports = (config) => { config.set({ browsers: ["ChromeHeadless"], - colors: true, - coverageIstanbulReporter: { - "combineBrowserReports": true, - "dir": path.join(__dirname, coverageFolder), - "fixWebpackSourcePaths": true, - "report-config": { - html: { - subdir: "html-report", - }, - }, - "reports": ["html", "lcovonly", "text-summary", "cobertura"], - "verbose": false, + customLaunchers: { + ChromeDebugging: { + base: "ChromeHeadless", + flags: ["--remote-debugging-port=9333"] + } }, + colors: true, coverageReporter: { dir: path.join(__dirname, coverageFolder), reporters: [ @@ -76,7 +71,6 @@ module.exports = (config) => { reporters: [ "progress", "junit", - "coverage-istanbul", ], preprocessors: { [testRecursivePath]: ["webpack", "sourcemap"], diff --git a/package-lock.json b/package-lock.json index be96b0a..c5421b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,2484 +1,1774 @@ { "name": "powerbi-visuals-timeline", - "version": "2.4.0", - "lockfileVersion": 1, + "version": "2.5.4.0", + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", - "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "packages": { + "": { + "name": "powerbi-visuals-timeline", + "version": "2.5.4.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^7.7.1", + "@typescript-eslint/parser": "^7.7.1", + "d3-array": "^3.2.4", + "d3-drag": "^3.0.0", + "d3-selection": "^3.0.0", + "d3-shape": "^3.2.0", + "eslint": "^8.57.0", + "eslint-plugin-powerbi-visuals": "^0.8.1", + "powerbi-models": "^1.15.2", + "powerbi-visuals-utils-chartutils": "^6.0.4", + "powerbi-visuals-utils-formattingmodel": "^6.0.2", + "powerbi-visuals-utils-formattingutils": "^6.1.1", + "powerbi-visuals-utils-interactivityutils": "^6.0.4", + "powerbi-visuals-utils-svgutils": "^6.0.4", + "powerbi-visuals-utils-typeutils": "^6.0.3" + }, + "devDependencies": { + "@types/d3-array": "^3.2.1", + "@types/d3-drag": "^3.0.7", + "@types/d3-selection": "^3.0.10", + "@types/d3-shape": "^3.1.6", + "@types/jasmine": "^5.1.4", + "@types/karma": "^6.3.8", + "@types/node": "^20.12.7", + "css-loader": "^7.1.1", + "jasmine": "^5.1.0", + "karma": "^6.4.3", + "karma-chrome-launcher": "^3.2.0", + "karma-coverage": "^2.2.1", + "karma-jasmine": "^5.1.0", + "karma-junit-reporter": "^2.0.1", + "karma-sourcemap-loader": "^0.4.0", + "karma-webpack": "^5.0.1", + "less": "^4.2.0", + "less-loader": "^12.2.0", + "playwright-chromium": "^1.43.1", + "powerbi-visuals-api": "~5.9.0", + "powerbi-visuals-tools": "^5.4.3", + "powerbi-visuals-utils-testutils": "^6.1.1", + "style-loader": "^4.0.0", + "ts-loader": "^9.5.1", + "typescript": "^5.4.5", + "webpack": "^5.91.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/generator": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", - "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, - "requires": { - "@babel/types": "^7.11.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - } + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { - "@babel/types": "^7.10.4" + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "node_modules/@babel/core": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", "dev": true, - "requires": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" + "bin": { + "semver": "bin/semver.js" } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz", - "integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==", + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, - "requires": { - "@babel/types": "^7.10.4" + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" } }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, - "requires": { - "@babel/types": "^7.10.4" + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "requires": { - "@babel/types": "^7.10.4" + "dependencies": { + "yallist": "^3.0.2" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "requires": { - "@babel/types": "^7.11.0" + "bin": { + "semver": "bin/semver.js" } }, - "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "requires": { - "@babel/types": "^7.10.4" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", - "lodash": "^4.17.19" + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "requires": { - "@babel/types": "^7.10.4" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, - "requires": { - "lodash": "^4.17.19" + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz", - "integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", - "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, - "requires": { - "@babel/types": "^7.11.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, - "requires": { - "@babel/types": "^7.11.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" - }, - "@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "engines": { + "node": ">=6.9.0" } }, - "@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "node_modules/@babel/helpers": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0" + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "node_modules/@babel/parser": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "node_modules/@babel/traverse": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "engines": { + "node": ">=4" } }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "node_modules/@babel/types/node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + "engines": { + "node": ">=4" } }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", - "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" + "engines": { + "node": ">=0.1.90" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=10.0.0" } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", - "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=8" } }, - "@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - }, "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true }, - "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "optional": true, + "engines": { + "node": ">=14" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } + "node_modules/@polka/url": { + "version": "1.0.0-next.24", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", + "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", + "dev": true }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true }, - "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "@types/connect": "*", + "@types/node": "*" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" + "dependencies": { + "@types/node": "*" } }, - "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, - "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" + "dependencies": { + "@types/node": "*" } }, - "@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true }, - "@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" + "dependencies": { + "@types/node": "*" } }, - "@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "dev": true + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "dependencies": { + "@types/d3-selection": "*" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", - "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", - "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.9.0", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", - "@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.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.0", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.0", - "@babel/plugin-transform-modules-commonjs": "^7.9.0", - "@babel/plugin-transform-modules-systemjs": "^7.9.0", - "@babel/plugin-transform-modules-umd": "^7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.0", - "browserslist": "^4.9.1", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } + "node_modules/@types/d3-path": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.8.tgz", + "integrity": "sha512-AZGHWslq/oApTAHu9+yH/Bnk63y9oFOMROtqPAtxl5uB6qm1x2lueWdVEjsjjV3Qc2+QfuzKIwIR5MvVBakfzA==", + "dev": true }, - "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", - "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" - } + "node_modules/@types/d3-selection": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", + "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==", + "dev": true }, - "@babel/runtime": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", - "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "node_modules/@types/d3-shape": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", + "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - }, "dependencies": { - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - } + "@types/d3-path": "*" } }, - "@babel/runtime-corejs3": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz", - "integrity": "sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA==", + "node_modules/@types/eslint": { + "version": "8.56.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", + "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", "dev": true, - "requires": { - "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.4" - }, "dependencies": { - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - } + "@types/estree": "*", + "@types/json-schema": "*" } }, - "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" } }, - "@babel/traverse": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", - "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.5", - "@babel/types": "^7.11.5", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "@babel/types": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", - "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - }, "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" } }, - "@eslint/eslintrc": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", - "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - } - } + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "dependencies": { + "@types/node": "*" } }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" - } + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" + "node_modules/@types/karma": { + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/@types/karma/-/karma-6.3.8.tgz", + "integrity": "sha512-+QGoOPhb1f6Oli8pG+hxdnGDzVhIrpsHaFSJ4UJg15Xj+QBtluKELkJY+L4Li532HmT3l5K5o1FoUZHRQeOOaQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "log4js": "^6.4.1" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/d3": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-5.7.2.tgz", - "integrity": "sha512-7/wClB8ycneWGy3jdvLfXKTd5SoTg9hji7IdJ0RuO9xTY54YpJ8zlcFADcXhY1J3kCBwxp+/1jeN6a5OMwgYOw==", - "dev": true, - "requires": { - "@types/d3-array": "^1", - "@types/d3-axis": "*", - "@types/d3-brush": "*", - "@types/d3-chord": "*", - "@types/d3-collection": "*", - "@types/d3-color": "*", - "@types/d3-contour": "*", - "@types/d3-dispatch": "*", - "@types/d3-drag": "*", - "@types/d3-dsv": "*", - "@types/d3-ease": "*", - "@types/d3-fetch": "*", - "@types/d3-force": "*", - "@types/d3-format": "*", - "@types/d3-geo": "*", - "@types/d3-hierarchy": "*", - "@types/d3-interpolate": "*", - "@types/d3-path": "*", - "@types/d3-polygon": "*", - "@types/d3-quadtree": "*", - "@types/d3-random": "*", - "@types/d3-scale": "*", - "@types/d3-scale-chromatic": "*", - "@types/d3-selection": "*", - "@types/d3-shape": "*", - "@types/d3-time": "*", - "@types/d3-time-format": "*", - "@types/d3-timer": "*", - "@types/d3-transition": "*", - "@types/d3-voronoi": "*", - "@types/d3-zoom": "*" - } - }, - "@types/d3-array": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.7.tgz", - "integrity": "sha512-51vHWuUyDOi+8XuwPrTw3cFqyh2Slg9y8COYkRfjCPG9TfYqY0hoNPzv/8BrcAy0FeQBzqEo/D/8Nk2caOQJnA==", + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, - "@types/d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-BZISgSD5M8TgURyNtcPAmUB9sk490CO1Thb6/gIn0WZTt3Y50IssX+2Z0vTccoqZksUDTep0b+o4ofXslvNbqg==", + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dev": true, - "requires": { - "@types/d3-selection": "*" + "dependencies": { + "undici-types": "~5.26.4" } }, - "@types/d3-brush": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.1.1.tgz", - "integrity": "sha512-Exx14trm/q2cskHyMjCrdDllOQ35r1/pmZXaOIt8bBHwYNk722vWY3VxHvN0jdFFX7p2iL3+gD+cGny/aEmhlw==", + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dev": true, - "requires": { - "@types/d3-selection": "*" + "dependencies": { + "@types/node": "*" } }, - "@types/d3-chord": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.9.tgz", - "integrity": "sha512-UA6lI9CVW5cT5Ku/RV4hxoFn4mKySHm7HEgodtfRthAj1lt9rKZEPon58vyYfk+HIAm33DtJJgZwMXy2QgyPXw==", + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, - "@types/d3-collection": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.8.tgz", - "integrity": "sha512-y5lGlazdc0HNO0F3UUX2DPE7OmYvd9Kcym4hXwrJcNUkDaypR5pX+apuMikl9LfTxKItJsY9KYvzBulpCKyvuQ==", + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, - "@types/d3-color": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.2.2.tgz", - "integrity": "sha512-6pBxzJ8ZP3dYEQ4YjQ+NVbQaOflfgXq/JbDiS99oLobM2o72uAST4q6yPxHv6FOTCRC/n35ktuo8pvw/S4M7sw==", + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, - "@types/d3-contour": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-1.3.0.tgz", - "integrity": "sha512-AUCUIjEnC5lCGBM9hS+MryRaFLIrPls4Rbv6ktqbd+TK/RXZPwOy9rtBWmGpbeXcSOYCJTUDwNJuEnmYPJRxHQ==", + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, - "requires": { - "@types/d3-array": "*", - "@types/geojson": "*" + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, - "@types/d3-dispatch": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.8.tgz", - "integrity": "sha512-lCDtqoYez0TgFN3FljBXrz2icqeSzD0gufGook6DPBia+NOh2TBfogjHIsmNa/a+ZOewlHtq4cgLY80O1uLymw==", - "dev": true - }, - "@types/d3-drag": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.3.tgz", - "integrity": "sha512-rWB5SPvkYVxW3sqUxHOJUZwifD0KqvKwvt1bhNqcLpW6Azsd0BJgRNcyVW8GAferaAk5r8dzeZnf9zKlg9+xMQ==", + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, - "requires": { - "@types/d3-selection": "*" + "dependencies": { + "@types/express": "*" } }, - "@types/d3-dsv": { - "version": "1.0.36", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.0.36.tgz", - "integrity": "sha512-jbIWQ27QJcBNMZbQv0NSQMHnBDCmxghAxePxgyiPH1XPCRkOsTBei7jcdi3fDrUCGpCV3lKrSZFSlOkhUQVClA==", - "dev": true - }, - "@types/d3-ease": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.9.tgz", - "integrity": "sha512-U5ADevQ+W6fy32FVZZC9EXallcV/Mi12A5Tkd0My5MrC7T8soMQEhlDAg88XUWm0zoCQlB4XV0en/24LvuDB4Q==", - "dev": true + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } }, - "@types/d3-fetch": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-1.1.5.tgz", - "integrity": "sha512-o9c0ItT5/Gl3wbNuVpzRnYX1t3RghzeWAjHUVLuyZJudiTxC4f/fC0ZPFWLQ2lVY8pAMmxpV8TJ6ETYCgPeI3A==", + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, - "requires": { - "@types/d3-dsv": "*" + "dependencies": { + "@types/node": "*" } }, - "@types/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA==", - "dev": true - }, - "@types/d3-format": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.3.1.tgz", - "integrity": "sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A==", - "dev": true - }, - "@types/d3-geo": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-1.11.1.tgz", - "integrity": "sha512-Ox8WWOG3igDRoep/dNsGbOiSJYdUG3ew/6z0ETvHyAtXZVBjOE0S96zSSmzgl0gqQ3RdZjn2eeJOj9oRcMZPkQ==", - "dev": true, - "requires": { - "@types/geojson": "*" - } - }, - "@types/d3-hierarchy": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz", - "integrity": "sha512-vvSaIDf/Ov0o3KwMT+1M8+WbnnlRiGjlGD5uvk83a1mPCTd/E5x12bUJ/oP55+wUY/4Kb5kc67rVpVGJ2KUHxg==", - "dev": true - }, - "@types/d3-interpolate": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.3.1.tgz", - "integrity": "sha512-z8Zmi08XVwe8e62vP6wcA+CNuRhpuUU5XPEfqpG0hRypDE5BWNthQHB1UNWWDB7ojCbGaN4qBdsWp5kWxhT1IQ==", - "dev": true, - "requires": { - "@types/d3-color": "*" - } - }, - "@types/d3-path": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.8.tgz", - "integrity": "sha512-AZGHWslq/oApTAHu9+yH/Bnk63y9oFOMROtqPAtxl5uB6qm1x2lueWdVEjsjjV3Qc2+QfuzKIwIR5MvVBakfzA==", - "dev": true - }, - "@types/d3-polygon": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-1.0.7.tgz", - "integrity": "sha512-Xuw0eSjQQKs8jTiNbntWH0S+Xp+JyhqxmQ0YAQ3rDu6c3kKMFfgsaGN7Jv5u3zG6yVX/AsLP/Xs/QRjmi9g43Q==", - "dev": true - }, - "@types/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-0ajFawWicfjsaCLh6NzxOyVDYhQAmMFbsiI3MPGLInorauHFEh9/Cl6UHNf+kt/J1jfoxKY/ZJaKAoDpbvde5Q==", - "dev": true - }, - "@types/d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-Jui+Zn28pQw/3EayPKaN4c/PqTvqNbIPjHkgIIFnxne1FdwNjfHtAIsZIBMKlquQNrrMjFzCrlF2gPs3xckqaA==", - "dev": true - }, - "@types/d3-scale": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-2.2.0.tgz", - "integrity": "sha512-oQFanN0/PiR2oySHfj+zAAkK1/p4LD32Nt1TMVmzk+bYHk7vgIg/iTXQWitp1cIkDw4LMdcgvO63wL+mNs47YA==", - "dev": true, - "requires": { - "@types/d3-time": "*" - } - }, - "@types/d3-scale-chromatic": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", - "integrity": "sha512-9/D7cOBKdZdTCPc6re0HeSUFBM0aFzdNdmYggUWT9SRRiYSOa6Ys2xdTwHKgc1WS3gGfwTMatBOdWCS863REsg==", - "dev": true - }, - "@types/d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-ksY8UxvTXpzD91Dy3D9zZg98yF2ZEPMKJd8ZQJlZt1QH3Xxr08s6fESEdC2l0Kbe6Xd9VhaoJX06cRaMR1lEnA==", - "dev": true - }, - "@types/d3-shape": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.2.tgz", - "integrity": "sha512-LtD8EaNYCaBRzHzaAiIPrfcL3DdIysc81dkGlQvv7WQP3+YXV7b0JJTtR1U3bzeRieS603KF4wUo+ZkJVenh8w==", - "dev": true, - "requires": { - "@types/d3-path": "*" - } - }, - "@types/d3-time": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.0.10.tgz", - "integrity": "sha512-aKf62rRQafDQmSiv1NylKhIMmznsjRN+MnXRXTqHoqm0U/UZzVpdrtRnSIfdiLS616OuC1soYeX1dBg2n1u8Xw==", - "dev": true - }, - "@types/d3-time-format": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.1.1.tgz", - "integrity": "sha512-tJSyXta8ZyJ52wDDHA96JEsvkbL6jl7wowGmuf45+fAkj5Y+SQOnz0N7/H68OWmPshPsAaWMQh+GAws44IzH3g==", - "dev": true - }, - "@types/d3-timer": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.9.tgz", - "integrity": "sha512-WvfJ3LFxBbWjqRGz9n7GJt08RrTHPJDVsIwwoCMROlqF+iDacYiAFjf9oqnq0mXpb2juA2N/qjKP+MKdal3YNQ==", - "dev": true - }, - "@types/d3-transition": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.1.6.tgz", - "integrity": "sha512-/F+O2r4oz4G9ATIH3cuSCMGphAnl7VDx7SbENEK0NlI/FE8Jx2oiIrv0uTrpg7yF/AmuWbqp7AGdEHAPIh24Gg==", - "dev": true, - "requires": { - "@types/d3-selection": "*" - } - }, - "@types/d3-voronoi": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz", - "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==", - "dev": true - }, - "@types/d3-zoom": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.7.4.tgz", - "integrity": "sha512-5jnFo/itYhJeB2khO/lKe730kW/h2EbKMOvY0uNp3+7NdPm4w63DwPEMxifQZ7n902xGYK5DdU67FmToSoy4VA==", - "dev": true, - "requires": { - "@types/d3-interpolate": "*", - "@types/d3-selection": "*" - } - }, - "@types/geojson": { - "version": "7946.0.7", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", - "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", - "dev": true - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, - "requires": { - "@types/minimatch": "*", + "dependencies": { "@types/node": "*" } }, - "@types/jasmine": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", - "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", - "dev": true - }, - "@types/jasmine-jquery": { - "version": "1.5.33", - "resolved": "https://registry.npmjs.org/@types/jasmine-jquery/-/jasmine-jquery-1.5.33.tgz", - "integrity": "sha512-yQTTxLDsdyH2GRoyWv4Dp/nCQ1OI8tB4bpOuQIx/09PM0uVTMtiLkjsBTVtsjP+9bvBNUj02a/6rhTWhoakDoA==", - "dev": true, - "requires": { - "@types/jasmine": "*", - "@types/jquery": "*" + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz", + "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.7.1", + "@typescript-eslint/type-utils": "7.7.1", + "@typescript-eslint/utils": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@types/jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-Tyctjh56U7eX2b9udu3wG853ASYP0uagChJcQJXLUXEU6C/JiW5qt5dl8ao01VRj1i5pgXPAf8f1mq4+FDLRQg==", - "dev": true, - "requires": { - "@types/sizzle": "*" + "node_modules/@typescript-eslint/parser": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz", + "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==", + "dependencies": { + "@typescript-eslint/scope-manager": "7.7.1", + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/typescript-estree": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" - }, - "@types/karma": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/karma/-/karma-5.0.0.tgz", - "integrity": "sha512-5quuLnxdJWkzJCEwFatOClM6O7EkeDWfXltGySb01LQnBVjtbLzIky9JLW0IKt+JfzurUjwj7b7Sb/Omsx4QYA==", - "dev": true, - "requires": { - "@types/node": "*", - "log4js": "^4.0.0" + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz", + "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==", + "dependencies": { + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@types/lodash": { - "version": "4.14.161", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz", - "integrity": "sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "14.6.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.4.tgz", - "integrity": "sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ==", - "dev": true - }, - "@types/puppeteer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-3.0.1.tgz", - "integrity": "sha512-t03eNKCvWJXhQ8wkc5C6GYuSqMEdKLOX0GLMGtks25YZr38wKZlKTwGM/BoAPVtdysX7Bb9tdwrDS1+NrW3RRA==", - "dev": true, - "requires": { - "@types/node": "*" + "node_modules/@typescript-eslint/type-utils": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz", + "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.7.1", + "@typescript-eslint/utils": "7.7.1", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@types/sizzle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", - "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==", - "dev": true - }, - "@types/uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", - "dev": true - }, - "@types/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" + "node_modules/@typescript-eslint/types": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz", + "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@typescript-eslint/eslint-plugin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.0.1.tgz", - "integrity": "sha512-pQZtXupCn11O4AwpYVUX4PDFfmIJl90ZgrEBg0CEcqlwvPiG0uY81fimr1oMFblZnpKAq6prrT9a59pj1x58rw==", - "requires": { - "@typescript-eslint/experimental-utils": "4.0.1", - "@typescript-eslint/scope-manager": "4.0.1", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz", + "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==", + "dependencies": { + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "@typescript-eslint/experimental-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.0.1.tgz", - "integrity": "sha512-gAqOjLiHoED79iYTt3F4uSHrYmg/GPz/zGezdB0jAdr6S6gwNiR/j7cTZ8nREKVzMVKLd9G3xbg1sV9GClW3sw==", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.0.1", - "@typescript-eslint/types": "4.0.1", - "@typescript-eslint/typescript-estree": "4.0.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.0.1.tgz", - "integrity": "sha512-1+qLmXHNAWSQ7RB6fdSQszAiA7JTwzakj5cNYjBTUmpH2cqilxMZEIV+DRKjVZs8NzP3ALmKexB0w/ExjcK9Iw==", - "requires": { - "@typescript-eslint/scope-manager": "4.0.1", - "@typescript-eslint/types": "4.0.1", - "@typescript-eslint/typescript-estree": "4.0.1", - "debug": "^4.1.1" + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "@typescript-eslint/scope-manager": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.0.1.tgz", - "integrity": "sha512-u3YEXVJ8jsj7QCJk3om0Y457fy2euEOkkzxIB/LKU3MdyI+FJ2gI0M4aKEaXzwCSfNDiZ13a3lDo5DVozc+XLQ==", - "requires": { - "@typescript-eslint/types": "4.0.1", - "@typescript-eslint/visitor-keys": "4.0.1" + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "@typescript-eslint/types": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.0.1.tgz", - "integrity": "sha512-S+gD3fgbkZYW2rnbjugNMqibm9HpEjqZBZkTiI3PwbbNGWmAcxolWIUwZ0SKeG4Dy2ktpKKaI/6+HGYVH8Qrlg==" - }, - "@typescript-eslint/typescript-estree": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.0.1.tgz", - "integrity": "sha512-zGzleORFXrRWRJAMLTB2iJD1IZbCPkg4hsI8mGdpYlKaqzvKYSEWVAYh14eauaR+qIoZVWrXgYSXqLtTlxotiw==", - "requires": { - "@typescript-eslint/types": "4.0.1", - "@typescript-eslint/visitor-keys": "4.0.1", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "node_modules/@typescript-eslint/utils": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz", + "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.1", + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/typescript-estree": "7.7.1", + "semver": "^7.6.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" } }, - "@typescript-eslint/visitor-keys": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.0.1.tgz", - "integrity": "sha512-yBSqd6FjnTzbg5RUy9J+9kJEyQjTI34JdGMJz+9ttlJzLCnGkBikxw+N5n2VDcc3CesbIEJ0MnZc5uRYnrEnCw==", - "requires": { - "@typescript-eslint/types": "4.0.1", - "eslint-visitor-keys": "^2.0.0" + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz", + "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==", + "dependencies": { + "@typescript-eslint/types": "7.7.1", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "dev": true }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "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" + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" } }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, - "requires": { + "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, - "requires": { + "dependencies": { "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "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" + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "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" + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "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" + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "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", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "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" + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, - "@xtuc/ieee754": { + "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "@xtuc/long": { + "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" } }, - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } }, - "agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", - "requires": { + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "ajv-keywords": { + "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { + "dev": true, + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "array-flatten": { + "node_modules/array-flatten": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "array-union": { + "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" } }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" + "minimalistic-assert": "^1.0.0" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "at-least-node": { + "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", - "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==" - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", - "dev": true, - "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, - "requires": { - "object.assign": "^4.1.0" + "engines": { + "node": ">= 4.0.0" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - } - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "possible-typed-array-names": "^1.0.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "dev": true - }, - "base64-inline-loader": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/base64-inline-loader/-/base64-inline-loader-1.1.1.tgz", - "integrity": "sha512-v/bHvXQ8sW28t9ZwBsFGgyqZw2bpT49/dtPTtlmixoSM/s9wnOngOKFVQLRH8BfMTy6jTl5m5CdvqpZt8y5d6g==", - "dev": true, - "requires": { - "file-loader": "^1.1.11", - "loader-utils": "^1.1.0", - "mime-types": "^2.1.18" - } - }, - "base64-js": { + "node_modules/base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, - "base64id": { + "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bfj": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", - "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", "dev": true, - "requires": { - "bluebird": "^3.5.5", - "check-types": "^8.0.3", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" + "engines": { + "node": "^4.5.0 || >= 5.9" } }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true - }, - "bl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", - "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "engines": { + "node": ">=8" } }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } + "ms": "2.0.0" } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/body-parser/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "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" + "dependencies": { + "ee-first": "1.1.1" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dev": true, "dependencies": { - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - } + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" } }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "brorand": { + "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browserify-aes": { + "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, - "requires": { + "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", @@ -2487,502 +1777,381 @@ "safe-buffer": "^5.0.1" } }, - "browserify-cipher": { + "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "requires": { + "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, - "browserify-des": { + "node_modules/browserify-des": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" } }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.5", + "hash-base": "~3.0", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" } }, - "browserify-zlib": { + "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, - "requires": { + "dependencies": { "pako": "~1.0.5" } }, - "browserslist": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz", - "integrity": "sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001111", - "electron-to-chromium": "^1.3.523", - "escalade": "^3.0.2", - "node-releases": "^1.1.60" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-xor": { + "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { + "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "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" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001124", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001124.tgz", - "integrity": "sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "node_modules/caniuse-lite": { + "version": "1.0.30001594", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001594.tgz", + "integrity": "sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "check-types": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", - "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", - "dev": true + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "requires": { - "anymatch": "~3.1.1", + "dependencies": { + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chrome-trace-event": { + "node_modules/chrome-trace-event": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, - "requires": { + "dependencies": { "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" } }, - "cipher-base": { + "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "wrap-ansi": "^7.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { + "dev": true, + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true }, - "commander": { + "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "node_modules/compare-versions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", + "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==", "dev": true }, - "compressible": { + "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "requires": { + "dependencies": { "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "compression": { + "node_modules/compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", @@ -2991,243 +2160,185 @@ "safe-buffer": "5.1.2", "vary": "~1.1.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "ms": "2.0.0" } }, - "concat-map": { + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "connect": { + "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "console-browserify": { + "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "constants-browserify": { + "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "requires": { - "safe-buffer": "5.1.2" - }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" + "safe-buffer": "5.2.1" }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { + "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "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" + "engines": { + "node": ">= 0.6" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, - "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" } }, - "core-js-pure": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", - "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", - "dev": true - }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, - "coveralls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", - "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", - "requires": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" } }, - "create-ecdh": { + "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "create-hash": { + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/create-hash": { "version": "1.2.0", "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", @@ -3235,12 +2346,12 @@ "sha.js": "^2.4.0" } }, - "create-hmac": { + "node_modules/create-hmac": { "version": "1.1.7", "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", @@ -3249,22 +2360,25 @@ "sha.js": "^2.4.8" } }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "crypto-browserify": { + "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, - "requires": { + "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", @@ -3276,679 +2390,394 @@ "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" } }, - "css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "node_modules/css-loader": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.1.tgz", + "integrity": "sha512-OxIR5P2mjO1PSXk44bWuQ8XtMK4dpEqpIyERCx3ewOo3I8EmbcxMPUc5ScLtQfgXtOojoMv57So4V/C02HQLsw==", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.0", - "semver": "^6.3.0" - }, "dependencies": { - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "webpack": { + "optional": true } } }, - "cssesc": { + "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } }, - "custom-event": { + "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "d3": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", - "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", - "requires": { - "d3-array": "1", - "d3-axis": "1", - "d3-brush": "1", - "d3-chord": "1", - "d3-collection": "1", - "d3-color": "1", - "d3-contour": "1", - "d3-dispatch": "1", - "d3-drag": "1", - "d3-dsv": "1", - "d3-ease": "1", - "d3-fetch": "1", - "d3-force": "1", - "d3-format": "1", - "d3-geo": "1", - "d3-hierarchy": "1", - "d3-interpolate": "1", - "d3-path": "1", - "d3-polygon": "1", - "d3-quadtree": "1", - "d3-random": "1", - "d3-scale": "2", - "d3-scale-chromatic": "1", - "d3-selection": "1", - "d3-shape": "1", - "d3-time": "1", - "d3-time-format": "2", - "d3-timer": "1", - "d3-transition": "1", - "d3-voronoi": "1", - "d3-zoom": "1" - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" - }, - "d3-brush": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", - "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", - "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "requires": { - "d3-array": "1", - "d3-path": "1" + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", - "requires": { - "d3-array": "^1.1.1" + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" } }, - "d3-dispatch": { + "node_modules/d3-dispatch": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" }, - "d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", - "requires": { - "d3-dispatch": "1", - "d3-selection": "1" - } - }, - "d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "requires": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" } }, - "d3-ease": { + "node_modules/d3-ease": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" }, - "d3-fetch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", - "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", - "requires": { - "d3-dsv": "1" - } - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "requires": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "d3-format": { + "node_modules/d3-format": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" }, - "d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "requires": { - "d3-array": "1" + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "requires": { - "d3-color": "1" + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "engines": { + "node": ">=12" } }, - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "d3-polygon": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", - "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" - }, - "d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", - "requires": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" - } - }, - "d3-scale-chromatic": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", - "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", - "requires": { - "d3-color": "1", - "d3-interpolate": "1" + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" } }, - "d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" - }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "requires": { - "d3-path": "1" + "node_modules/d3-shape/node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" } }, - "d3-time": { + "node_modules/d3-time": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" }, - "d3-time-format": { + "node_modules/d3-time-format": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "requires": { + "dependencies": { "d3-time": "1" } }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", - "requires": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" - } - }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", - "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", "dev": true }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "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" + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" } }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" } }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "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" - }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, "dependencies": { - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "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" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - } + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "des.js": { + "node_modules/des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, - "requires": { - "repeating": "^2.0.0" + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "devtools-protocol": { - "version": "0.0.781568", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.781568.tgz", - "integrity": "sha512-9Uqnzy6m6zEStluH9iyJ3iHyaQziFnMnLeC8vK0eN6smiJmIx7+yB64d67C2lH/LZra+5cGscJAJsNXO+MdPMg==", + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "di": { + "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", "dev": true }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diffie-hellman": { + "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } } }, - "dir-glob": { + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { + "dependencies": { "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, - "doctrine": { + "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { + "dependencies": { "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "dom-serialize": { + "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, - "requires": { + "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", "extend": "^3.0.0", "void-elements": "^2.0.0" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexer": { + "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.562", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.562.tgz", - "integrity": "sha512-WhRe6liQ2q/w1MZc8mD8INkenHivuHdrr4r5EQHNomy3NJux+incP6M6lDMd0paShP3MD0WGe5R1TWmEClf+Bg==", + "node_modules/electron-to-chromium": { + "version": "1.4.692", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.692.tgz", + "integrity": "sha512-d5rZRka9n2Y3MkWRN74IoAsxR0HK3yaAt7T50e3iT9VZmCCQDT3geXUO5ZRMhDToa1pkCeQXuNo+0g+NfDOVPA==", "dev": true }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "node_modules/elliptic": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", + "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", @@ -3956,843 +2785,642 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, - "requires": { - "once": "^1.4.0" + "engines": { + "node": ">= 0.8" } }, - "engine.io": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz", - "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==", + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", "dev": true, - "requires": { + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "~7.4.2" - }, - "dependencies": { - "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", - "dev": true - } - } - }, - "engine.io-client": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz", - "integrity": "sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==", - "dev": true, - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~7.4.2", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", - "dev": true - } + "engines": { + "node": ">=10.2.0" } }, - "engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "node_modules/engine.io-parser": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" + "engines": { + "node": ">=10.0.0" } }, - "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "node_modules/engine.io/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } + "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 } } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "requires": { - "ansi-colors": "^4.1.1" + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" } }, - "ent": { + "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, - "errno": { + "node_modules/errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, - "requires": { + "optional": true, + "dependencies": { "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" } }, - "error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", - "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, - "requires": { - "stackframe": "^1.1.1" + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" } }, - "escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", "dev": true }, - "escape-html": { + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.8.1.tgz", - "integrity": "sha512-/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.1.3", - "ajv": "^6.10.0", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^1.3.0", - "espree": "^7.3.0", - "esquery": "^1.2.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - } + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "eslint-plugin-powerbi-visuals": { + "node_modules/eslint-plugin-powerbi-visuals": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/eslint-plugin-powerbi-visuals/-/eslint-plugin-powerbi-visuals-0.8.1.tgz", "integrity": "sha512-GAdD5kIO2+X+WsTGW9DvfQ5sd2UFw+0FaPGYPsq2Dpt0RuVdfpHG58PJF7YWzjQmtr2EUGGJUbCALq4v3hK+JQ==" }, - "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", - "requires": { - "esrecurse": "^4.1.0", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "requires": { - "eslint-visitor-keys": "^1.1.0" + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - } + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" - }, - "espree": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", - "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - } + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "requires": { - "estraverse": "^5.1.0" + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "esrecurse": { + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { + "dependencies": { "estraverse": "^5.2.0" }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "engines": { + "node": ">=4.0" } }, - "estraverse": { + "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "event-stream": { - "version": "3.3.4", - "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, - "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" + "engines": { + "node": ">=6" } }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, - "requires": { - "original": "^1.0.0" + "engines": { + "node": ">=0.8.x" } }, - "evp_bytestokey": { + "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "requires": { + "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "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" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "expose-loader": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.5.tgz", - "integrity": "sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw==", - "dev": true - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, - "requires": { - "accepts": "~1.3.7", + "dependencies": { + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "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.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", + "proxy-addr": "~2.0.7", + "qs": "6.11.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", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, - "dependencies": { - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "engines": { + "node": ">= 0.10.0" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "node_modules/express/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "extra-watch-webpack-plugin": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/extra-watch-webpack-plugin/-/extra-watch-webpack-plugin-1.0.3.tgz", - "integrity": "sha512-ZScQdMH6hNofRRN6QMQFg+aa5vqimfBgnPXmRDhdaLpttT6hrzpY9Oyren3Gh/FySPrgsvKCNbx/NFA7XNdIsg==", + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "glob": "^7.1.2", - "is-glob": "^4.0.0", - "lodash.uniq": "^4.5.0", - "schema-utils": "^0.4.0" - }, "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } + "ms": "2.0.0" } }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, - "fast-deep-equal": { + "node_modules/express/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extra-watch-webpack-plugin": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/extra-watch-webpack-plugin/-/extra-watch-webpack-plugin-1.0.3.tgz", + "integrity": "sha512-ZScQdMH6hNofRRN6QMQFg+aa5vqimfBgnPXmRDhdaLpttT6hrzpY9Oyren3Gh/FySPrgsvKCNbx/NFA7XNdIsg==", + "dev": true, + "dependencies": { + "glob": "^7.1.2", + "is-glob": "^4.0.0", + "lodash.uniq": "^4.5.0", + "schema-utils": "^0.4.0" + } + }, + "node_modules/extra-watch-webpack-plugin/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "requires": { + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" } }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, - "fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", - "requires": { + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { "reusify": "^1.0.4" } }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, - "requires": { + "dependencies": { "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-loader": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", - "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.4.5" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", - "dev": true - }, - "fill-range": { + "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -4801,3714 +3429,3418 @@ "statuses": "~1.5.0", "unpipe": "~1.0.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">= 0.8" } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" } }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dev": true, - "requires": { - "map-cache": "^0.2.2" + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "friendly-errors-webpack-plugin": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz", - "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==", + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "requires": { - "chalk": "^1.1.3", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0" + "engines": { + "node": ">=14" }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "engines": { + "node": ">= 0.6" } }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", + "dependencies": { + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, - "requires": { - "pump": "^3.0.0" + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "requires": { - "type-fest": "^0.8.1" + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "requires": { + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "handle-thing": { + "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, - "requires": { - "function-bind": "^1.1.1" + "engines": { + "node": ">=4" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-binary2": { + "node_modules/has-proto": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, - "requires": { - "isarray": "2.0.1" + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hash-base": { + "node_modules/hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "hash.js": { + "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, - "hmac-drbg": { + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, - "requires": { + "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "dev": true - }, - "hpack.js": { + "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" } }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] }, - "html-escaper": { + "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-deceiver": { + "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, - "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", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, - "http-proxy": { + "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "requires": { + "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, - "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", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true } } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { + "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, - "https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "requires": { - "agent-base": "5", - "debug": "4" + "engines": { + "node": ">=10.17.0" } }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { + "dev": true, + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, - "requires": { - "postcss": "^7.0.14" + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } }, - "image-size": { + "node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "dev": true, - "optional": true + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } }, - "immediate": { + "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", "dev": true }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "requires": { + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "node_modules/inline-source-map": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.3.tgz", + "integrity": "sha512-1aVsPEsJWMJq/pdMU61CDlm1URcW702MTB4w9/zUjMus6H/Py8o7g68Pr9D4I6QluWGt/KdmswuRhaA05xVR1w==", "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" + "dependencies": { + "source-map": "~0.5.3" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "engines": { + "node": ">= 10" } }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, - "requires": { - "call-bind": "^1.0.0" + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "bin": { + "is-docker": "cli.js" }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" } }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, - "requires": { - "path-is-inside": "^1.0.2" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "requires": { - "has-symbols": "^1.0.1" + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "isobject": { + "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } }, - "istanbul-instrumenter-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", - "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "convert-source-map": "^1.5.0", - "istanbul-lib-instrument": "^1.7.3", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0" + "engines": { + "node": ">=8" } }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", - "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "node_modules/istanbul-lib-report/node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" } }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", + "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "engines": { + "node": ">=10" } }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "requires": { + "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "jasmine": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.6.1.tgz", - "integrity": "sha512-Jqp8P6ZWkTVFGmJwBK46p+kJNrZCdqkQ4GL+PGuBXZwK1fM4ST9BizkYgIwCFqYYqnTizAy6+XG2Ej5dFrej9Q==", + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, - "requires": { - "fast-glob": "^2.2.6", - "jasmine-core": "~3.6.0" + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.1.0.tgz", + "integrity": "sha512-prmJlC1dbLhti4nE4XAPDWmfJesYO15sjGXVp7Cs7Ym5I9Xtwa/hUHxxJXjnpfLO72+ySttA0Ztf8g/RiVnUKw==", + "dev": true, "dependencies": { - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "glob": "^10.2.2", + "jasmine-core": "~5.1.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" } }, - "jasmine-core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", - "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "node_modules/jasmine-core": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, - "jasmine-jquery": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/jasmine-jquery/-/jasmine-jquery-2.1.1.tgz", - "integrity": "sha1-1AleZGlEomdjI1dpqwGNnzDw1Hs=", - "dev": true + "node_modules/jasmine/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", - "dev": true + "node_modules/jasmine/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "node_modules/jasmine/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } }, - "jsesc": { - "version": "1.3.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "json-loader": { + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-loader": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", "dev": true }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "json-stable-stringify-without-jsonify": { + "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { + "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "requires": { + "optionalDependencies": { "graceful-fs": "^4.1.6" } }, - "jsonschema": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.5.tgz", - "integrity": "sha512-kVTF+08x25PQ0CjuVc0gRM9EUPb0Fe9Ln/utFOgcdxEIOHuU7ooBk/UPTd7t1M91pP35m0MU1T8M5P7vP1bRRw==", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", - "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, - "requires": { + "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "setimmediate": "^1.0.5" } }, - "karma": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.1.tgz", - "integrity": "sha512-+/AO2fWL7kC3aWTx/lHjtKXfOqh0O+KLtTy4BLQ/b/eciHR4VTHHdPhdrn9sDBQskgDieaBZ+sAKzlldc4GW/Q==", + "node_modules/karma": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.3.tgz", + "integrity": "sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==", "dev": true, - "requires": { + "dependencies": { + "@colors/colors": "1.5.0", "body-parser": "^1.19.0", "braces": "^3.0.2", - "chokidar": "^3.4.2", - "colors": "^1.4.0", + "chokidar": "^3.5.1", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^2.3.0", - "source-map": "^0.7.3", - "tmp": "0.2.1", - "ua-parser-js": "0.7.21", - "yargs": "^15.3.1" - }, - "dependencies": { - "date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "dev": true, - "requires": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "dev": true, - "requires": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true - } - } - } + "socket.io": "^4.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" } }, - "karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, - "requires": { + "dependencies": { "which": "^1.2.1" - }, + } + }, + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", - "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", "minimatch": "^3.0.4" }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-coverage/node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma-coverage/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, "dependencies": { - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - } + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "karma-jasmine": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", - "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "node_modules/karma-coverage/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, - "requires": { - "jasmine-core": "^3.6.0" + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" } }, - "karma-junit-reporter": { + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/karma-junit-reporter": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz", "integrity": "sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==", "dev": true, - "requires": { + "dependencies": { "path-is-absolute": "^1.0.0", "xmlbuilder": "12.0.0" + }, + "engines": { + "node": ">= 8" + }, + "peerDependencies": { + "karma": ">=0.9" } }, - "karma-sourcemap-loader": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz", - "integrity": "sha512-zorxyAakYZuBcHRJE+vbrK2o2JXLFWK8VVjiT/6P+ltLBUGUvqTEkUiQ119MGdOrK7mrmxXHZF1/pfT6GgIZ6g==", + "node_modules/karma-sourcemap-loader": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.4.0.tgz", + "integrity": "sha512-xCRL3/pmhAYF3I6qOrcn0uhbQevitc2DERMPH82FMnG+4WReoGcGFZb1pURf2a5apyrOHRdvD+O6K7NljqKHyA==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2" + "dependencies": { + "graceful-fs": "^4.2.10" } }, - "karma-webpack": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-4.0.2.tgz", - "integrity": "sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.1.0", - "neo-async": "^2.6.1", - "schema-utils": "^1.0.0", - "source-map": "^0.7.3", - "webpack-dev-middleware": "^3.7.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "node_modules/karma-webpack": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.1.tgz", + "integrity": "sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^9.0.3", + "webpack-merge": "^4.1.5" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true + "node_modules/karma-webpack/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "node_modules/karma-webpack/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "klona": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.3.tgz", - "integrity": "sha512-CgPOT3ZadDpXxKcfV56lEQ9OQSZ42Mk26gnozI+uN/k39vzD8toUhRQoqsX0m9Q3eMPEfsLWmtyUpK/yqST4yg==", - "dev": true + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=" + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } }, - "less": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", - "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, - "requires": { + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", - "native-request": "^1.0.5", - "source-map": "~0.6.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", + "dev": true, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { "optional": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "webpack": { "optional": true } } }, - "less-loader": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.0.1.tgz", - "integrity": "sha512-TO0+5HuDJhHArpOWnjzPMQ0xfdvyo0nxF75NNnSZ/n8b08aDuhk91/zV9sqYHzPfWvBh1PjpX/pTEEi2QnmaYA==", - "dev": true, - "requires": { - "klona": "^2.0.3", - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.1" - }, - "dependencies": { - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" } }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "requires": { - "leven": "^3.1.0" + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "levn": { + "node_modules/less/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "requires": { + "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "lie": { + "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, - "requires": { + "dependencies": { "immediate": "~3.0.5" } }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "engines": { + "node": ">=6.11.5" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "lodash-es": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz", - "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", "dev": true }, - "lodash.clonedeep": { + "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", "dev": true }, - "lodash.defaults": { + "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", "dev": true }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "lodash.findindex": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.findindex/-/lodash.findindex-4.6.0.tgz", - "integrity": "sha1-oyRd7mH7m24GJLU1ElYku2nBEQY=", - "dev": true - }, - "lodash.isequal": { + "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", "dev": true }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "lodash.uniq": { + "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==" - }, - "log4js": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", - "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", - "dev": true, - "requires": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.4", - "streamroller": "^1.0.6" - } - }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" } }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-stream": { - "version": "0.1.0", - "resolved": "http://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, - "requires": { - "object-visit": "^1.0.0" + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "md5.js": { + "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "engines": { + "node": ">= 0.6" } }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "merge2": { + "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "miller-rabin": { + "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "requires": { - "mime-db": "1.44.0" + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "mini-css-extract-plugin": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", - "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" } }, - "minimalistic-assert": { + "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, - "minimalistic-crypto-utils": { + "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "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", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "mkdirp": { + "node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { + "dev": true, + "dependencies": { "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "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" + "engines": { + "node": ">=10" } }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "multi-loader": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/multi-loader/-/multi-loader-0.1.0.tgz", - "integrity": "sha1-LwzHQ47G5KTrwaOHAVhJsE+HX0Q=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, - "requires": { - "dns-packet": "^1.3.1", + "dependencies": { + "dns-packet": "^5.2.2", "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "native-request": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.7.tgz", - "integrity": "sha512-9nRjinI9bmz+S7dgNtf4A70+/vPhnd+2krGpy4SUlADuOuSa24IDkNaZ+R/QT1wQ6S8jBdi6wE7fLekFZNfUpQ==", + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, - "optional": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "natural-compare": { + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "neo-async": { + "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-cleanup": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", - "integrity": "sha1-esGavSl+Caf3KnFUXZUbUX5N3iw=", - "dev": true - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, - "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": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "engines": { + "node": ">= 6.13.0" } }, - "node-releases": { - "version": "1.1.60", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", - "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" + "engines": { + "node": ">=0.10.0" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "requires": { - "path-key": "^2.0.0" - }, "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - } + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, - "requires": { - "isobject": "^3.0.0" + "engines": { + "node": ">= 0.4" } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "obuf": { + "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "on-finished": { + "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "on-headers": { + "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { + "dependencies": { "wrappy": "1" } }, - "opener": { + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "dev": true, - "requires": { - "is-wsl": "^1.1.0" + "bin": { + "opener": "bin/opener-bin.js" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "requires": { + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "os-browserify": { + "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, - "requires": { - "retry": "^0.12.0" + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parent-module": { + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "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" + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", - "dev": true + "node_modules/parse-asn1/node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } }, - "parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", - "dev": true + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "path-exists": { + "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "path-to-regexp": { + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, - "path-type": { + "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "requires": { - "through": "~2.3" + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" } }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, - "requires": { + "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" } }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pify": { + "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "node_modules/playwright-chromium": { + "version": "1.43.1", + "resolved": "https://registry.npmjs.org/playwright-chromium/-/playwright-chromium-1.43.1.tgz", + "integrity": "sha512-HL/11hcpIYVt/Rw7wTf5xwm+W0R76JGDDjRxGtBkgMuUqi0Q4UYmx+F/QxW/Z+aApSbDtHd3naRFcL/Jt7Aidg==", "dev": true, - "requires": { - "pinkie": "^2.0.0" + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.43.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" } }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "node_modules/playwright-core": { + "version": "1.43.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz", + "integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==", "dev": true, - "requires": { - "find-up": "^3.0.0" + "bin": { + "playwright-core": "cli.js" }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } + "engines": { + "node": ">=16" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" + "engines": { + "node": "^10 || ^12 || >= 14" }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dev": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } + "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.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/powerbi-models": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/powerbi-models/-/powerbi-models-1.15.2.tgz", + "integrity": "sha512-UcBLtBB2wa8pL412DxyVZvv/bKiUVJfLTCXAuGmIqnOkoA/EnYDUM3B8oS2piN1azyEN8pjN353rE9DeARCJtA==" + }, + "node_modules/powerbi-visuals-api": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/powerbi-visuals-api/-/powerbi-visuals-api-5.9.0.tgz", + "integrity": "sha512-i7GLJOr2gNvdvHuGqTt+ktBVuRcrduoJMIG94avCba/iPEo2pHGqbdESfsV85UALwZA+6lTKfOnwn83lDh0rCA==", + "dependencies": { + "semver": "^7.6.0" + } + }, + "node_modules/powerbi-visuals-tools": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/powerbi-visuals-tools/-/powerbi-visuals-tools-5.4.3.tgz", + "integrity": "sha512-msriNFlq+jk+YfJ7lBOG657QJggFCD3h0YMmmk2H5F7M4doVoVuY/79jcs3MacjZds3lMARKexxR+V6n/tiwgA==", + "dev": true, + "dependencies": { + "@typescript-eslint/parser": "^6.21.0", + "assert": "^2.1.0", + "async": "^3.2.5", + "browserify-zlib": "^0.2.0", + "buffer": "^6.0.3", + "chalk": "^5.3.0", + "commander": "^11.1.0", + "compare-versions": "^6.1.0", + "console-browserify": "^1.2.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.12.0", + "css-loader": "^6.10.0", + "domain-browser": "^5.7.0", + "events": "^3.3.0", + "extra-watch-webpack-plugin": "^1.0.3", + "fs-extra": "^11.2.0", + "https-browserify": "^1.0.0", + "inline-source-map": "^0.6.3", + "json-loader": "0.5.7", + "jszip": "^3.10.1", + "less": "^4.2.0", + "less-loader": "^11.1.4", + "lodash.clonedeep": "4.5.0", + "lodash.defaults": "4.2.0", + "lodash.isequal": "4.5.0", + "lodash.ismatch": "^4.4.0", + "mini-css-extract-plugin": "^2.8.1", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "powerbi-visuals-webpack-plugin": "4.1.0", + "process": "^0.11.10", + "punycode": "^2.3.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^4.5.2", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.3.0", + "terser-webpack-plugin": "^5.3.10", + "timers-browserify": "^2.0.12", + "ts-loader": "^9.5.1", + "tty-browserify": "^0.0.1", + "typescript": "^4.9.5", + "url": "^0.11.3", + "util": "^0.12.5", + "vm-browserify": "^1.1.2", + "webpack": "^5.91.0", + "webpack-bundle-analyzer": "4.10.1", + "webpack-dev-server": "^4.15.2" + }, + "bin": { + "pbiviz": "bin/pbiviz.js" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "*" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "node_modules/powerbi-visuals-tools/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true } } }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "requires": { - "postcss": "^7.0.5" + "node_modules/powerbi-visuals-tools/node_modules/domain-browser": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-5.7.0.tgz", + "integrity": "sha512-edTFu0M/7wO1pXY6GDxVNVW086uqwWYIHP98txhcPyV995X21JIH2DtYp33sQJOupYoXKe9RwTw2Ya2vWaquTQ==", + "dev": true, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/less-loader": { + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.4.tgz", + "integrity": "sha512-6/GrYaB6QcW6Vj+/9ZPgKKs6G10YZai/l/eJ4SLwbzqNTBsAqt5hSLVF47TgsiBxV1P6eAU0GYRH3YRuQU9V3A==", + "dev": true, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/mini-css-extract-plugin": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", + "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/powerbi-visuals-tools/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/powerbi-visuals-tools/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/powerbi-visuals-utils-chartutils": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-chartutils/-/powerbi-visuals-utils-chartutils-6.0.4.tgz", + "integrity": "sha512-N2WD47EtOIVUBr5LEjw9IPEbzlN4eLlry2uUhWSdv3THV2Sp7GHvFf9GkquO3ag8jl1uqRqsmMdeE+/96nX7mw==", + "dependencies": { + "d3-array": "^3.2.4", + "d3-axis": "^3.0.0", + "d3-scale": "^4.0.2", + "d3-selection": "^3.0.0", + "d3-transition": "^3.0.1", + "powerbi-visuals-utils-formattingutils": "^6.1.1", + "powerbi-visuals-utils-interactivityutils": "^6.0.4", + "powerbi-visuals-utils-svgutils": "^6.0.4", + "powerbi-visuals-utils-typeutils": "^6.0.3" + }, + "optionalDependencies": { + "fsevents": "2.3.3" + } + }, + "node_modules/powerbi-visuals-utils-chartutils/node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/powerbi-visuals-utils-chartutils/node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/powerbi-visuals-utils-chartutils/node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/powerbi-visuals-utils-chartutils/node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/powerbi-visuals-utils-dataviewutils": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-dataviewutils/-/powerbi-visuals-utils-dataviewutils-6.0.3.tgz", + "integrity": "sha512-GzAb0J86tjAXfrLlNZ0dYR70m6YW751UcUnnpBzV7rz0w0UjHL0ty+rU3yzNEORcqb5hHNnBa3kMEzgz0l4LxA==", + "optionalDependencies": { + "fsevents": "*" + } + }, + "node_modules/powerbi-visuals-utils-formattingmodel": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-formattingmodel/-/powerbi-visuals-utils-formattingmodel-6.0.2.tgz", + "integrity": "sha512-UY9g7ZyY1UC7pyzJxjZU8iwvIfMrLCHzYSEL1D3B65mZHgdIW/vWhGS0EvXTEdl0Gu0HmTiwvvVXtN3+IfHgiA==", + "dependencies": { + "powerbi-visuals-api": "^5.9.0" } }, - "postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", - "dev": true, - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" + "node_modules/powerbi-visuals-utils-formattingutils": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-formattingutils/-/powerbi-visuals-utils-formattingutils-6.1.1.tgz", + "integrity": "sha512-KQNjQQIfH007COcr5xMdN9WVZ6v2OcYX7l4U8ZL5lTpcKhaQBH3g96AUECz3oWnK7rmqI9DjqdikUTkcPBgo5Q==", + "dependencies": { + "powerbi-visuals-api": "^5.9.0", + "powerbi-visuals-utils-dataviewutils": "^6.0.3", + "powerbi-visuals-utils-typeutils": "^6.0.3" + }, + "optionalDependencies": { + "fsevents": "2.3.3" } }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" + "node_modules/powerbi-visuals-utils-interactivityutils": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-interactivityutils/-/powerbi-visuals-utils-interactivityutils-6.0.4.tgz", + "integrity": "sha512-oqC3juH9gc+oYhWX7dijQWD7rf2Lgc4Hi/G0JNvPa/jbOdS55jgaUyPpknRlRl4RU+lcAa1SXk1146a6+a+5gw==", + "dependencies": { + "d3-selection": "^3.0.0", + "powerbi-models": "1.13.0", + "powerbi-visuals-utils-svgutils": "^6.0.4", + "powerbi-visuals-utils-typeutils": "^6.0.3" } }, - "postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "dev": true, - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" + "node_modules/powerbi-visuals-utils-interactivityutils/node_modules/powerbi-models": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/powerbi-models/-/powerbi-models-1.13.0.tgz", + "integrity": "sha512-fToQmRqECBJSlHaKNAzFql52ryNnhSm2UwRXfsctcS5Hp//o9sExasVsASv6jZjXE8ACNyKjDUKdGqWsCjRd1Q==" + }, + "node_modules/powerbi-visuals-utils-svgutils": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-svgutils/-/powerbi-visuals-utils-svgutils-6.0.4.tgz", + "integrity": "sha512-5aS/nxvO25adfmUn9bLh1OMmbQFGzN7b1AETp2ak/mtpMJ3dTRuXpq1wyXpByxIYTkrQ7iPsrUtdjCSXeboX2Q==", + "dependencies": { + "d3-selection": "^3.0.0", + "d3-timer": "^3.0.1", + "powerbi-visuals-utils-typeutils": "^6.0.3" } }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "node_modules/powerbi-visuals-utils-testutils": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-testutils/-/powerbi-visuals-utils-testutils-6.1.1.tgz", + "integrity": "sha512-BHD/b0trm99M3hyrqfWb4WPSLQBVcWh5XQtbl+uoqRzFjPCpaE9enS3MgPyUmRGR8xeTpkfWLc7o8w8XCIstrw==", "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "dependencies": { + "d3-array": "3.2.4", + "d3-timer": "3.0.1", + "lodash-es": "4.17.21", + "powerbi-visuals-api": "^5.9.0", + "powerbi-visuals-utils-formattingmodel": "^6.0.2", + "powerbi-visuals-utils-typeutils": "^6.0.3" + }, + "optionalDependencies": { + "fsevents": "*" } }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true + "node_modules/powerbi-visuals-utils-typeutils": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-typeutils/-/powerbi-visuals-utils-typeutils-6.0.3.tgz", + "integrity": "sha512-GKJTdIgoNushNHaFOHkyRIdccbnk4ECb89DqVICthm3fuLHOD15Nb3hH45kz+2dr8lPdc9oCHhuDiBGMcCr1UQ==", + "optionalDependencies": { + "fsevents": "*" + } }, - "powerbi-models": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/powerbi-models/-/powerbi-models-1.4.0.tgz", - "integrity": "sha512-SNdY3SSjOU1DHs3mgyvi2jv1UvTIXoxrbdZBEjsePQ7bo6Rp425Q6qKCE7kHgJz5fjOZ6tPU5+zT+J4J7xYFQQ==" - }, - "powerbi-visuals-api": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/powerbi-visuals-api/-/powerbi-visuals-api-3.5.1.tgz", - "integrity": "sha512-SlUk5f3K8U40Nnw8A+D+jUEEQg0GOFmqyhIIaU+g8tndqJGXbbNaYSOd1l8XntMPVRA0/aCQOopMXVDKvMaq5w==", - "dev": true, - "requires": { - "semver": "^7.3.2" - } - }, - "powerbi-visuals-tools": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/powerbi-visuals-tools/-/powerbi-visuals-tools-3.1.15.tgz", - "integrity": "sha512-soOCwAZQUCPGel9VwKK91YB2BLgHyRi6t2t+fFpHWo44BuWKvIbczKXl98LmjtDlThrA2qtQexPl3xmMYp1riQ==", - "dev": true, - "requires": { - "@babel/core": "7.9.0", - "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/preset-env": "7.9.0", - "@babel/runtime": "7.9.2", - "@babel/runtime-corejs3": "7.9.2", - "async": "3.2.0", - "babel-loader": "^8.1.0", - "base64-inline-loader": "^1.1.1", - "chalk": "3.0.0", - "commander": "4.1.1", - "connect": "3.7.0", - "core-js": "3.6.4", - "css-loader": "^3.4.2", - "expose-loader": "0.7.5", - "extra-watch-webpack-plugin": "^1.0.3", - "friendly-errors-webpack-plugin": "1.7.0", - "fs-extra": "9.0.0", - "json-loader": "0.5.7", - "jsonschema": "1.2.5", - "jszip": "3.2.2", - "less": "^3.11.1", - "less-loader": "5.0.0", + "node_modules/powerbi-visuals-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/powerbi-visuals-webpack-plugin/-/powerbi-visuals-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-ttXVVsQYcs6VuoMNZ4SRaK9vdRaIZsU1S16sDSgcnnf5dlaXXiB/j411HACdYLMrU0YUR/vI4QTC7xq52hbMgw==", + "dev": true, + "dependencies": { + "ajv": "6.12.3", + "chalk": "^4.1.2", + "compare-versions": "^3.6.0", + "fs-extra": "9.0.1", + "jszip": "^3.10.1", "lodash.clonedeep": "4.5.0", - "lodash.defaults": "4.2.0", - "lodash.difference": "4.5.0", - "lodash.findindex": "4.6.0", - "lodash.isequal": "4.5.0", - "lodash.template": "4.5.0", - "mini-css-extract-plugin": "^0.9.0", - "multi-loader": "0.1.0", - "powerbi-visuals-webpack-plugin": "^2.2.5", - "request": "^2.88.2", - "script-loader": "0.7.2", - "serve-static": "1.14.1", - "source-map-concat": "1.0.1", - "style-loader": "^1.1.3", - "ts-loader": "6.2.2", - "tsc-watch": "4.2.3", - "typescript": "3.8.3", - "uuid": "7.0.2", - "webpack": "^4.42.1", - "webpack-bundle-analyzer": "3.6.1", - "webpack-dev-server": "^3.11.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "dev": true - }, - "fs-extra": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", - "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, - "less-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", - "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^4.0.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "ts-loader": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.2.tgz", - "integrity": "sha512-HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", - "micromatch": "^4.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "typescript": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", - "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", - "dev": true - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "dev": true - }, - "uuid": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz", - "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==", - "dev": true - } + "webpack-sources": "^3.2.3" + }, + "engines": { + "node": ">=12.0.0" } }, - "powerbi-visuals-utils-chartutils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-chartutils/-/powerbi-visuals-utils-chartutils-2.5.0.tgz", - "integrity": "sha512-V1H+aFH2SomV8be4pwCLxRU2P7S6viNmyhkzXD//n0XNq3I1DrExTyYZhM818WzTi9DTGxqKF0xK+y91nVhWFQ==", - "requires": { - "d3": "^5.16.0", - "powerbi-visuals-utils-formattingutils": "^4.7.0", - "powerbi-visuals-utils-interactivityutils": "^5.7.0", - "powerbi-visuals-utils-svgutils": "^2.3.0", - "powerbi-visuals-utils-typeutils": "^2.3.0" + "node_modules/powerbi-visuals-webpack-plugin/node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "powerbi-visuals-utils-dataviewutils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-dataviewutils/-/powerbi-visuals-utils-dataviewutils-2.3.0.tgz", - "integrity": "sha512-egfD4zUUDupp9B5hpbZSxwHAeD6xjV9918koTMIJ68VQ0L8l8pYJfzHqRHyxbVa2NOlQQkwYrwK1tUGtNfxolA==" - }, - "powerbi-visuals-utils-formattingutils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-formattingutils/-/powerbi-visuals-utils-formattingutils-4.7.0.tgz", - "integrity": "sha512-G+HS0LO42Dwn4Z/W20GyQWd+xldxGjuFFAbl50ksJZvoSjudvzswsR1Vp6fwuZI5/2wMxLOIY99E2HkzsddxcA==", - "requires": { - "powerbi-visuals-utils-dataviewutils": "2.3.0", - "powerbi-visuals-utils-typeutils": "2.3.0" - } + "node_modules/powerbi-visuals-webpack-plugin/node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true }, - "powerbi-visuals-utils-interactivityutils": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-interactivityutils/-/powerbi-visuals-utils-interactivityutils-5.7.0.tgz", - "integrity": "sha512-EQ7KR5rEokjl5+dfopE3muFDYCIg/f0fB/QnMyCdTZh6WPSR2UFKhxAXN2/SaKgcra152+R+O+0s3+H4Ykyemg==", - "requires": { - "d3": "5.16.0", - "powerbi-models": "1.3.4", - "powerbi-visuals-utils-svgutils": "2.3.0", - "powerbi-visuals-utils-typeutils": "2.3.0" - }, - "dependencies": { - "powerbi-models": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/powerbi-models/-/powerbi-models-1.3.4.tgz", - "integrity": "sha512-hphw7boqjh/GSTUg4xZNoUE5/SWGTKWZhDZHapl1lIsbq2uXQQWVr6k9uyvZDLfTakE4+o18SBcIQe4IRNAduQ==" - } + "node_modules/powerbi-visuals-webpack-plugin/node_modules/fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" } }, - "powerbi-visuals-utils-svgutils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-svgutils/-/powerbi-visuals-utils-svgutils-2.3.0.tgz", - "integrity": "sha512-MrlNxuCymAJtE+uejDFxHfTlraPNMIjQjG0aBm3uoNAAbA2Ea4FFzJZ+u1scKzpusIMWiKMaGx1AhHWWARWtTA==", - "requires": { - "d3": "5.16.0", - "powerbi-visuals-utils-typeutils": "2.3.0" - } - }, - "powerbi-visuals-utils-testutils": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-testutils/-/powerbi-visuals-utils-testutils-2.3.2.tgz", - "integrity": "sha512-gdEjYuYxx6vAypszJCEt8B0JE38SfyxlYXkM+QvZqzL/8gx/MpR02M/pQvp2L+0hxN9pnjueqi+u7OpnGjneaQ==", - "dev": true, - "requires": { - "d3-array": "2.7.1", - "d3-timer": "2.0.0", - "istanbul-instrumenter-loader": "3.0.1", - "lodash-es": "4.17.15", - "uuidv4": "^6.2.3" - }, - "dependencies": { - "d3-array": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.7.1.tgz", - "integrity": "sha512-dYWhEvg1L2+osFsSqNHpXaPQNugLT4JfyvbLE046I2PDcgYGFYc0w24GSJwbmcjjZYOPC3PNP2S782bWUM967Q==", - "dev": true - }, - "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", - "dev": true - } + "node_modules/powerbi-visuals-webpack-plugin/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "powerbi-visuals-utils-typeutils": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-typeutils/-/powerbi-visuals-utils-typeutils-2.3.0.tgz", - "integrity": "sha512-Bv3aHTS1jkLh4v7FY1eMf2r0PzHkO4OR/b677nRlanKiuCglSFAmUC7PTKbp2+sFpHyDi6V/8nE1QCVWnczfRw==", - "requires": { - "coveralls": "^3.1.0" + "node_modules/powerbi-visuals-webpack-plugin/node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" } }, - "powerbi-visuals-webpack-plugin": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/powerbi-visuals-webpack-plugin/-/powerbi-visuals-webpack-plugin-2.2.5.tgz", - "integrity": "sha512-BGjHkmASXhHGNHcuA7HsZtBr0UTlXg2vDgTOSEA6qYWTxuqk505HXfvrOjJ9sfPXMpA5eAZwBxvgrA8gDcujug==", + "node_modules/powerbi-visuals-webpack-plugin/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true, - "requires": { - "ajv": "6.12.3", - "chalk": "^4.1.0", - "fs-extra": "9.0.1", - "jszip": "3.5.0", - "lodash.clonedeep": "4.5.0", - "lodash.template": "4.5.0", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "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" - } - }, - "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, - "jszip": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", - "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "dev": true - } + "engines": { + "node": ">= 10.0.0" } }, - "prelude-ls": { + "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } }, - "process": { + "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "requires": { - "forwarded": "~0.1.2", + "dependencies": { + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "prr": { + "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "ps-tree": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", - "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", "dev": true, - "requires": { - "event-stream": "=3.3.4" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "optional": true }, - "public-encrypt": { + "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, - "requires": { + "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" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true }, - "puppeteer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.2.1.tgz", - "integrity": "sha512-PZoZG7u+T6N1GFWBQmGVG162Ak5MAy8nYSVpeeQrwJK2oYUlDWpHEJPcd/zopyuEMTv7DiztS1blgny1txR2qw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "devtools-protocol": "0.0.781568", - "extract-zip": "^2.0.0", - "https-proxy-agent": "^4.0.0", - "mime": "^2.0.3", - "pkg-dir": "^4.2.0", - "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", - "rimraf": "^3.0.2", - "tar-fs": "^2.0.0", - "unbzip2-stream": "^1.3.3", - "ws": "^7.2.3" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" } }, - "qjobs": { + "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "engines": { + "node": ">=0.9" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "querystring-es3": { + "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "randomfill": { + "node_modules/randomfill": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, - "range-parser": { + "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "requires": { + "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", @@ -8516,436 +6848,340 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" } }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" - }, - "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "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" + "engines": { + "node": ">=0.10.0" } }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "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" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" } }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } + "engines": { + "node": ">= 4" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "reusify": { + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", "dev": true }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "requires": { + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "ripemd160": { + "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "requires": { - "ret": "~0.1.10" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, - "requires": { - "ajv": "^5.0.0" + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - } + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "script-loader": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/script-loader/-/script-loader-0.7.2.tgz", - "integrity": "sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==", + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, - "requires": { - "raw-loader": "~0.5.1" + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" } }, - "select-hose": { + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, - "requires": { - "node-forge": "^0.10.0" + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" } }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "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": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } + "ms": "2.0.0" } }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.1.0" } }, - "serve-index": { + "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", @@ -8954,2743 +7190,1507 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } + "ms": "2.0.0" } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "set-blocking": { + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" } }, - "setimmediate": { + "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "sha.js": { + "node_modules/sha.js": { "version": "2.4.11", "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" } }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { + "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" } }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "socket.io": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz", - "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.5.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.4.0", - "socket.io-parser": "~3.4.0" + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "socket.io-client": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz", - "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==", + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", "dev": true, - "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "engine.io-client": "~3.5.0", - "has-binary2": "~1.0.2", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "socket.io-parser": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", - "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", - "dev": true, - "requires": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - } + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" } }, - "socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "node_modules/socket.io": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", + "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - }, "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" } }, - "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "node_modules/socket.io-adapter": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.11.0" } }, - "sockjs-client": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", - "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "node_modules/socket.io-adapter/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, - "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.4.7" + "engines": { + "node": ">=10.0.0" }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true } } }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } }, - "source-map": { + "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-concat/-/source-map-concat-1.0.1.tgz", - "integrity": "sha1-B+ADHiyRVwRl2+v6nSpGg5AFk7M=", "dev": true, - "requires": { - "source-map": "^0.5.3", - "urix": "^0.1.0" + "engines": { + "node": ">=0.10.0" } }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true, - "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" + "engines": { + "node": ">=0.10.0" } }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "spdy": { + "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "requires": { + "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" } }, - "spdy-transport": { + "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "requires": { + "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" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split": { - "version": "0.3.3", - "resolved": "http://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "dev": true, - "requires": { - "through": "2" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "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": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stackframe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", - "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "statuses": { + "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true, - "requires": { - "duplexer": "~0.1.1" + "engines": { + "node": ">= 0.6" } }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "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": { + "safe-buffer": "~5.1.0" } }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "streamroller": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", - "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "requires": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" - }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } }, - "string-argv": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.1.2.tgz", - "integrity": "sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==", + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "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", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "requires": { - "safe-buffer": "~5.1.0" + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "strip-json-comments": { + "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "style-loader": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", - "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.6.6" - }, - "dependencies": { - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } + "node_modules/style-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", + "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", + "dev": true, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.27.0" } }, - "supports-color": { + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { + "dev": true, + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "tar-fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", - "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" + "engines": { + "node": ">=6" } }, - "tar-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz", - "integrity": "sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==", + "node_modules/terser": { + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", + "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==", "dev": true, - "requires": { - "bl": "^4.0.1", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true } } }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "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" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "text-table": { + "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, - "through": { - "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { + "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, - "requires": { + "dependencies": { "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" } }, - "tmp": { + "node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, - "requires": { - "rimraf": "^3.0.0" - }, "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" + "rimraf": "^3.0.0" }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "engines": { + "node": ">=8.17.0" } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "trim-right": { + "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", - "dev": true - }, - "ts-loader": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.0.3.tgz", - "integrity": "sha512-wsqfnVdB7xQiqhqbz2ZPLGHLPZbHVV5Qn/MNFZkCFxRU1miDyxKORucDGxKtsQJ63Rfza0udiUxWF5nHY6bpdQ==", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "requires": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", - "micromatch": "^4.0.0", - "semver": "^6.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=0.6" } }, - "ts-node": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", - "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, - "requires": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "tsc-watch": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-4.2.3.tgz", - "integrity": "sha512-M1Lo37+ggVfavGX3ObUVMz9QBH7moqq2RlmBdxnz6a6etwecetznZ/ZgYOi2c9HQ4Ki2qStj7V9J/gSf0rThig==", - "dev": true, - "requires": { - "cross-spawn": "^5.1.0", - "node-cleanup": "^2.1.2", - "ps-tree": "^1.2.0", - "string-argv": "^0.1.1", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" - }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "engines": { + "node": ">=6" } }, - "tslint-loader": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/tslint-loader/-/tslint-loader-3.5.4.tgz", - "integrity": "sha512-jBHNNppXut6SgZ7CsTBh+6oMwVum9n8azbmcYSeMlsABhWWoHwjq631vIFXef3VSd75cCdX3rc6kstsB7rSVVw==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "object-assign": "^4.1.1", - "rimraf": "^2.4.4", - "semver": "^5.3.0" + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "engines": { + "node": ">=16" }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "tslint-microsoft-contrib": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-6.2.0.tgz", - "integrity": "sha512-6tfi/2tHqV/3CL77pULBcK+foty11Rr0idRDxKnteTaKm6gWF9qmaCNU17HVssOuwlYNyOmd9Jsmjd+1t3a3qw==", + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", "dev": true, - "requires": { - "tsutils": "^2.27.2 <2.29.0" - }, "dependencies": { - "tsutils": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", - "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" } }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "requires": { - "tslib": "^1.8.1" + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "node_modules/tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-check": { + "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "requires": { + "dependencies": { "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", - "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", - "dev": true - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" }, - "dependencies": { - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - } + "engines": { + "node": ">= 0.6" } }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { + "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "punycode": "^2.1.0" } }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "node_modules/url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.2" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "node_modules/url/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, - "requires": { - "inherits": "2.0.3" - }, "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "utils-merge": { + "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "uuidv4": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.3.tgz", - "integrity": "sha512-4hxGisl76Y6A7nkadg5gMrPGVYVGLmJ3fZHVvmnXsy+8DMA7n7YV/4Y72Fw38CCwpZpyPgOaa/4YxhkCYwyNNQ==", "dev": true, - "requires": { - "@types/uuid": "8.3.0", - "uuid": "8.3.0" - }, - "dependencies": { - "uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", - "dev": true - } + "engines": { + "node": ">= 0.4.0" } }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "vm-browserify": { + "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "void-elements": { + "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" + "engines": { + "node": ">=0.10.0" } }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "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", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "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", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "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", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "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" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "wbuf": { + "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "requires": { + "dependencies": { "minimalistic-assert": "^1.0.0" } }, - "webpack": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", - "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "node_modules/webpack": { + "version": "5.91.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", + "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", "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", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", "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": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } + "enhanced-resolve": "^5.16.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "webpack-bundle-analyzer": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.1.tgz", - "integrity": "sha512-Nfd8HDwfSx1xBwC+P8QMGvHAOITxNBSvu/J/mCJvOwv+G4VWkU7zir9SSenTtyCi0LnVtmsc7G5SZo1uV+bxRw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1", - "bfj": "^6.1.1", - "chalk": "^2.4.1", - "commander": "^2.18.0", - "ejs": "^2.6.1", - "express": "^4.16.3", - "filesize": "^3.6.1", - "gzip-size": "^5.0.0", - "lodash": "^4.17.15", - "mkdirp": "^0.5.1", - "opener": "^1.5.1", - "ws": "^6.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", + "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "is-plain-object": "^5.0.0", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "webpack-dev-server": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", - "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", "compression": "^1.7.4", - "connect-history-api-fallback": "^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", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", + "sockjs": "^0.3.24", "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", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "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", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "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", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { "optional": true }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "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", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "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", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "webpack-cli": { + "optional": true } } }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" + "engines": { + "node": ">=10.0.0" }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true } } }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "lodash": "^4.17.15" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "websocket-driver": { + "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, - "requires": { + "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "websocket-extensions": { + "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "which": { + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { - "errno": "~0.1.7" + "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" } }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { + "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-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "requires": { - "mkdirp": "^0.5.1" + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "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 + } } }, - "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", - "dev": true - }, - "xmlbuilder": { + "node_modules/xmlbuilder": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz", "integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0" + } }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4" + } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "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.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } + "engines": { + "node": ">=10" } }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "engines": { + "node": ">=10" } }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index fc253c6..2bc2c8c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "powerbi-visuals-timeline", - "version": "2.4.0", + "version": "2.5.4.0", "description": "Timeline slicer is a graphical date range selector used as a filtering component in the report canvas", "repository": { "type": "git", @@ -16,7 +16,6 @@ "package": "pbiviz package", "test": "karma start", "watch": "karma start --single-run=false", - "lint": "tslint -c tslint.json -p tsconfig.json", "eslint": "npx eslint . --ext .js,.jsx,.ts,.tsx" }, "author": { @@ -29,55 +28,48 @@ }, "homepage": "https://github.com/Microsoft/powerbi-visuals-timeline#readme", "devDependencies": { - "@types/d3": "^5.7.2", - "@types/jasmine": "^3.5.14", - "@types/jasmine-jquery": "^1.5.33", - "@types/jquery": "^3.5.1", - "@types/karma": "^5.0.0", - "@types/lodash": "^4.14.161", - "@types/node": "^14.6.4", - "@types/puppeteer": "^3.0.1", - "core-js": "^3.6.5", - "coveralls": "^3.1.0", - "istanbul-instrumenter-loader": "^3.0.1", - "jasmine": "^3.6.1", - "jasmine-jquery": "^2.1.1", - "jquery": "^3.5.1", - "karma": "^5.2.1", - "karma-chrome-launcher": "^3.1.0", - "karma-coverage-istanbul-reporter": "^3.0.3", - "karma-jasmine": "^4.0.1", + "@types/d3-array": "^3.2.1", + "@types/d3-drag": "^3.0.7", + "@types/d3-selection": "^3.0.10", + "@types/d3-shape": "^3.1.6", + "@types/jasmine": "^5.1.4", + "@types/karma": "^6.3.8", + "@types/node": "^20.12.7", + "css-loader": "^7.1.1", + "jasmine": "^5.1.0", + "karma": "^6.4.3", + "karma-chrome-launcher": "^3.2.0", + "karma-coverage": "^2.2.1", + "karma-jasmine": "^5.1.0", "karma-junit-reporter": "^2.0.1", - "karma-sourcemap-loader": "^0.3.8", - "karma-webpack": "^4.0.2", - "less": "^3.12.2", - "less-loader": "^7.0.1", - "lodash": "^4.17.20", - "powerbi-visuals-api": "^3.5.1", - "powerbi-visuals-tools": "^3.1.15", - "powerbi-visuals-utils-testutils": "^2.3.2", - "puppeteer": "^5.2.1", - "style-loader": "^1.2.1", - "ts-loader": "^8.0.3", - "ts-node": "^9.0.0", - "tslint": "^6.1.3", - "tslint-loader": "^3.5.4", - "tslint-microsoft-contrib": "^6.2.0", - "typescript": "^4.0.2", - "webpack": "^4.44.1" + "karma-sourcemap-loader": "^0.4.0", + "karma-webpack": "^5.0.1", + "less": "^4.2.0", + "less-loader": "^12.2.0", + "playwright-chromium": "^1.43.1", + "powerbi-visuals-api": "~5.9.0", + "powerbi-visuals-tools": "^5.4.3", + "powerbi-visuals-utils-testutils": "^6.1.1", + "style-loader": "^4.0.0", + "ts-loader": "^9.5.1", + "typescript": "^5.4.5", + "webpack": "^5.91.0" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.1", - "@typescript-eslint/parser": "^4.0.1", - "d3": "^5.16.0", - "eslint": "^7.8.1", + "@typescript-eslint/eslint-plugin": "^7.7.1", + "@typescript-eslint/parser": "^7.7.1", + "d3-array": "^3.2.4", + "d3-drag": "^3.0.0", + "d3-selection": "^3.0.0", + "d3-shape": "^3.2.0", + "eslint": "^8.57.0", "eslint-plugin-powerbi-visuals": "^0.8.1", - "powerbi-models": "^1.4.0", - "powerbi-visuals-utils-chartutils": "^2.5.0", - "powerbi-visuals-utils-dataviewutils": "^2.3.0", - "powerbi-visuals-utils-formattingutils": "^4.7.0", - "powerbi-visuals-utils-interactivityutils": "^5.7.0", - "powerbi-visuals-utils-svgutils": "^2.3.0", - "powerbi-visuals-utils-typeutils": "^2.3.0" + "powerbi-models": "^1.15.2", + "powerbi-visuals-utils-chartutils": "^6.0.4", + "powerbi-visuals-utils-formattingmodel": "^6.0.2", + "powerbi-visuals-utils-formattingutils": "^6.1.1", + "powerbi-visuals-utils-interactivityutils": "^6.0.4", + "powerbi-visuals-utils-svgutils": "^6.0.4", + "powerbi-visuals-utils-typeutils": "^6.0.3" } } diff --git a/pbiviz.json b/pbiviz.json index 586223b..e0515cf 100644 --- a/pbiviz.json +++ b/pbiviz.json @@ -1,15 +1,15 @@ { "visual": { "name": "Timeline", - "displayName": "Timeline 2.4.0", + "displayName": "Timeline 2.5.4.0", "guid": "Timeline1447991079100", "visualClassName": "Timeline", - "version": "2.4.0", + "version": "2.5.4.0", "description": "Timeline slicer is a graphical date range selector used as a filtering component in the report canvas", "supportUrl": "https://community.powerbi.com", "gitHubUrl": "https://github.com/Microsoft/powerbi-visuals-timeline" }, - "apiVersion": "3.5.0", + "apiVersion": "5.9.0", "author": { "name": "Microsoft", "email": "pbicvsupport@microsoft.com" diff --git a/src/behavior.ts b/src/behavior.ts new file mode 100644 index 0000000..45f9bb7 --- /dev/null +++ b/src/behavior.ts @@ -0,0 +1,83 @@ + +import { Selection as d3Selection, local as d3local } from "d3-selection"; +import {ICursorDataPoint, ITimelineDataPoint} from "./dataInterfaces"; +import ISelectionManager = powerbi.extensibility.ISelectionManager; +import {D3DragEvent, drag as d3Drag} from "d3-drag"; + +type Selection = d3Selection; + +export interface BehaviorOptions { + selectionManager: ISelectionManager; + cells: { + selection: Selection; + callback: (dataPoint: ITimelineDataPoint, index: number, isMultiSelection: boolean) => void; + cellWidth: number; + }; + cursors: { + selection: Selection + onDrag: (event: D3DragEvent, currentCursor: ICursorDataPoint) => void; + onEnd: () => void; + } + clearCatcher: Selection; + clearSelectionHandler: () => void; +} + +export class Behavior { + public static bindEvents(options: BehaviorOptions) { + Behavior.handleCellsClick(options); + Behavior.handleCursorsDrag(options); + Behavior.clearCatcher(options); + } + + private static handleCursorsDrag(options: BehaviorOptions) { + const dragBehavior = d3Drag() + .subject((_: D3DragEvent, cursorDataPoint: ICursorDataPoint) => { + cursorDataPoint.x = cursorDataPoint.selectionIndex * options.cells.cellWidth; + + return cursorDataPoint; + }) + .on("drag end", null) + .on("drag", options.cursors.onDrag) + .on("end", options.cursors.onEnd); + + options.cursors.selection.call(dragBehavior); + } + + private static handleCellsClick(options: BehaviorOptions) { + const local = d3local(); + let index = 0; + + options.cells.selection + .each(function () { + local.set(this, index); + index += 1; + }) + .on("click touchstart", null) + .on("click touchstart", function (event: MouseEvent, dataPoint: ITimelineDataPoint) { + event.stopPropagation(); + const index: number = local.get(this); + options.cells.callback(dataPoint, index, event.ctrlKey || event.metaKey || event.altKey || event.shiftKey); + }) + } + + private static clearCatcher(options: BehaviorOptions) { + options.clearCatcher + .on("click", null) + .on("click", options.clearSelectionHandler); + + options.clearCatcher.on("contextmenu", (event: MouseEvent) => { + const emptySelection = { + "measures": [], + "dataMap": { + } + }; + + options.selectionManager.showContextMenu(emptySelection, { + x: event.clientX, + y: event.clientY + }); + + event.preventDefault(); + }); + } +} diff --git a/src/calendars/calendar.ts b/src/calendars/calendar.ts index 7f74836..86178c4 100644 --- a/src/calendars/calendar.ts +++ b/src/calendars/calendar.ts @@ -25,11 +25,8 @@ */ import { GranularityData } from "../granularity/granularityData"; -import { CalendarSettings } from "../settings/calendarSettings"; -import { WeekDaySettings } from "../settings/weekDaySettings"; -import { WeeksDetermintaionStandardsSettings } from "../settings/weeksDetermintaionStandardsSettings"; import { Utils } from "../utils"; -import { WeekStandards } from "./weekStandards"; +import { WeekStandard } from "./weekStandard"; interface IDateDictionary { [year: number]: Date; @@ -40,6 +37,16 @@ export interface IPeriodDates { endDate: Date; } +export interface CalendarFormat { + month: number; + day: number; +} + +export interface WeekdayFormat { + daySelection: boolean; + day: number; +} + export class Calendar { private static QuarterFirstMonths: number[] = [0, 3, 6, 9]; @@ -53,7 +60,7 @@ export class Calendar { protected EmptyYearOffset: number = 0; protected YearOffset: number = 1; - constructor(calendarFormat: CalendarSettings, weekDaySettings: WeekDaySettings) { + constructor(calendarFormat: CalendarFormat, weekDaySettings: WeekdayFormat) { this.isDaySelection = weekDaySettings.daySelection; this.firstDayOfWeek = weekDaySettings.day; this.firstMonthOfYear = calendarFormat.month; @@ -67,7 +74,7 @@ export class Calendar { }); } - public getFiscalYearAjustment(): number { + public getFiscalYearAdjustment(): number { const firstMonthOfYear = this.getFirstMonthOfYear(); const firstDayOfYear = this.getFirstDayOfYear(); @@ -84,7 +91,7 @@ export class Calendar { firstDayOfYear, ); - return date.getFullYear() + this.getFiscalYearAjustment() - ((firstDate <= date) + return date.getFullYear() + this.getFiscalYearAdjustment() - ((firstDate <= date) ? this.EmptyYearOffset : this.YearOffset); } @@ -94,7 +101,7 @@ export class Calendar { // It's Ok until this year is used to calculate date of first week. // So, here is some adjustment was applied. const year: number = this.determineYear(date); - const fiscalYearAdjustment = this.getFiscalYearAjustment(); + const fiscalYearAdjustment = this.getFiscalYearAdjustment(); const dateOfFirstWeek: Date = this.getDateOfFirstWeek(year - fiscalYearAdjustment); const dateOfFirstFullWeek: Date = this.getDateOfFirstFullWeek(year - fiscalYearAdjustment); @@ -190,14 +197,14 @@ export class Calendar { } public isChanged( - calendarSettings: CalendarSettings, - weekDaySettings: WeekDaySettings, - weeksDetermintaionStandardsSettings: WeeksDetermintaionStandardsSettings + calendarSettings: CalendarFormat, + weekDaySettings: WeekdayFormat, + weekStandard: WeekStandard ): boolean { return this.firstMonthOfYear !== calendarSettings.month || this.firstDayOfYear !== calendarSettings.day || this.firstDayOfWeek !== weekDaySettings.day - || weeksDetermintaionStandardsSettings.weekStandard !== WeekStandards.NotSet; + || weekStandard !== WeekStandard.NotSet; } public getDateOfFirstWeek(year: number): Date { diff --git a/src/calendars/calendarFactory.ts b/src/calendars/calendarFactory.ts index 31c7597..608afd8 100644 --- a/src/calendars/calendarFactory.ts +++ b/src/calendars/calendarFactory.ts @@ -1,20 +1,17 @@ -import { CalendarSettings } from "../settings/calendarSettings"; -import { WeekDaySettings } from "../settings/weekDaySettings"; -import { WeeksDetermintaionStandardsSettings } from "../settings/weeksDetermintaionStandardsSettings"; -import { Calendar } from "./calendar"; -import { WeekStandards } from "./weekStandards"; +import {Calendar, CalendarFormat, WeekdayFormat} from "./calendar"; +import { WeekStandard } from "./weekStandard"; import { CalendarISO8061 } from "./calendarISO8061"; export class CalendarFactory { public create( - weeksDetermintaionStandardsSettings: WeeksDetermintaionStandardsSettings, - calendarSettings: CalendarSettings, - weekDaySettings: WeekDaySettings) : Calendar { + weekStandard: WeekStandard, + calendarSettings: CalendarFormat, + weekDaySettings: WeekdayFormat) : Calendar { - let calendar: Calendar = null; + let calendar: Calendar; - switch (weeksDetermintaionStandardsSettings.weekStandard) { - case WeekStandards.ISO8061: + switch (weekStandard) { + case WeekStandard.ISO8061: calendar = new CalendarISO8061(); break; default: @@ -23,4 +20,4 @@ export class CalendarFactory { return calendar; } -} \ No newline at end of file +} diff --git a/src/calendars/calendarISO8061.ts b/src/calendars/calendarISO8061.ts index 8d07068..6baff72 100644 --- a/src/calendars/calendarISO8061.ts +++ b/src/calendars/calendarISO8061.ts @@ -1,19 +1,20 @@ -import { Calendar } from "./calendar"; -import { CalendarSettings } from "../settings/calendarSettings"; -import { WeekDaySettings } from "../settings/weekDaySettings"; -import { WeeksDetermintaionStandardsSettings } from "../settings/weeksDetermintaionStandardsSettings"; -import { WeekStandards } from "./weekStandards"; +import {Calendar, CalendarFormat, WeekdayFormat} from "./calendar"; +import { WeekStandard } from "./weekStandard"; import { Utils } from "../utils"; +import {CalendarSettingsCard} from "../timeLineSettingsModel"; export class CalendarISO8061 extends Calendar { constructor() { - const isoCalendarSettings = new CalendarSettings(); - isoCalendarSettings.month = 0; - isoCalendarSettings.day = 1; - const isoWeekDaySettings = new WeekDaySettings(); - isoWeekDaySettings.daySelection = true; - isoWeekDaySettings.day = 1; + const isoCalendarSettings: CalendarFormat = { + month: CalendarSettingsCard.DefaultMonth, + day: CalendarSettingsCard.DefaultDay, + }; + + const isoWeekDaySettings: WeekdayFormat = { + daySelection: true, + day: 1, + }; super(isoCalendarSettings, isoWeekDaySettings); @@ -41,7 +42,7 @@ export class CalendarISO8061 extends Calendar { if (date < dateOfFirstWeek) { // This scenario works when the first date of ISO week year starts from the beginning of January: 1th, 2nd, 3rd, 4th - // + // // Input date: January 3, 2021 [left condition expression] // The first date of 2021 regarding ISO weeks: January 4, 2021 [right condition expression] // Returning ISO week year for January 3, 2021: 2020 @@ -67,7 +68,7 @@ export class CalendarISO8061 extends Calendar { const dayOfFirstJanWeek = dateOfFirstJan.getDay(); const firstJanDig = 1; - let dateOfFirstWeek = dateOfFirstJan; + const dateOfFirstWeek = dateOfFirstJan; // The first week regarding ISO has to contain Thursday (4th day in the week) if (dayOfFirstJanWeek <= 4) { // If 1st January is Monday, Tuesday, Wednesday or Thursday => the first week date should be adjusted to left up to Monday @@ -102,10 +103,10 @@ export class CalendarISO8061 extends Calendar { } public isChanged( - calendarSettings: CalendarSettings, - weekDaySettings: WeekDaySettings, - weeksDetermintaionStandardsSettings: WeeksDetermintaionStandardsSettings + calendarSettings: CalendarFormat, + weekDaySettings: WeekdayFormat, + weekStandard: WeekStandard ): boolean { - return weeksDetermintaionStandardsSettings.weekStandard !== WeekStandards.ISO8061 + return weekStandard !== WeekStandard.ISO8061 } -} \ No newline at end of file +} diff --git a/src/calendars/month.ts b/src/calendars/month.ts new file mode 100644 index 0000000..f1c7767 --- /dev/null +++ b/src/calendars/month.ts @@ -0,0 +1,15 @@ + +export enum Month { + January = 0, + February = 1, + March = 2, + April = 3, + May = 4, + June = 5, + July = 6, + August = 7, + September = 8, + October = 9, + November = 10, + December = 11 +} diff --git a/src/calendars/weekStandards.ts b/src/calendars/weekStandard.ts similarity index 52% rename from src/calendars/weekStandards.ts rename to src/calendars/weekStandard.ts index 90e43e1..1e3fe9b 100644 --- a/src/calendars/weekStandards.ts +++ b/src/calendars/weekStandard.ts @@ -1,4 +1,4 @@ -export enum WeekStandards { +export enum WeekStandard { NotSet = 0, ISO8061 = 1 -} \ No newline at end of file +} diff --git a/src/calendars/weekday.ts b/src/calendars/weekday.ts new file mode 100644 index 0000000..de981c1 --- /dev/null +++ b/src/calendars/weekday.ts @@ -0,0 +1,9 @@ +export enum Weekday { + Sunday = 0, + Monday = 1, + Tuesday = 2, + Wednesday = 3, + Thursday = 4, + Friday = 5, + Saturday = 6 +} diff --git a/src/granularity/dayGranularity.ts b/src/granularity/dayGranularity.ts index 73e0222..4ab1881 100644 --- a/src/granularity/dayGranularity.ts +++ b/src/granularity/dayGranularity.ts @@ -40,7 +40,7 @@ export class DayGranularity extends GranularityBase { } public render(props: IGranularityRenderProps, isFirst: boolean): Selection { - if (!props.granularSettings.granularityDayVisibility) { + if (!props.granularSettings.granularityDayVisibility.value) { return null; } diff --git a/src/granularity/granularityBase.ts b/src/granularity/granularityBase.ts index 1232b29..f8f19ce 100644 --- a/src/granularity/granularityBase.ts +++ b/src/granularity/granularityBase.ts @@ -35,7 +35,6 @@ import { pixelConverter } from "powerbi-visuals-utils-typeutils"; import { Calendar } from "../calendars/calendar"; import { ITimelineDatePeriod } from "../datePeriod/datePeriod"; -import { GranularitySettings } from "../settings/granularitySettings"; import { Utils } from "../utils"; import { IGranularity } from "./granularity"; import { IGranularityName } from "./granularityName"; @@ -45,6 +44,7 @@ import { IExtendedLabel, ITimelineLabel, } from "../dataInterfaces"; +import {GranularityType} from "./granularityType"; export class GranularityBase implements IGranularity { private static DefaultFraction: number = 1; @@ -118,10 +118,15 @@ export class GranularityBase implements IGranularity { .attr("dx", this.textLabelDx); // render slider - if (props.granularSettings.granularity === this.granularityProps.granularityType) { + const granularityType: GranularityType = props.granularSettings.granularity.value + ? props.granularSettings.granularity.value.value + : GranularityType.month; + + if (granularityType === this.granularityProps.granularityType) { this.renderSlider( granularitySelection, - props.granularSettings, + props.granularSettings.sliderColor.value.value, + granularityType ); } @@ -133,11 +138,8 @@ export class GranularityBase implements IGranularity { .attr("width", pixelConverter.toString(this.clickableRectWidth)) .attr("height", pixelConverter.toString(this.clickableRectHeight)) .on("click", null) - .on("click", () => { - const event: MouseEvent = (require("d3").event); - + .on("click", (event: MouseEvent) => { event.stopPropagation(); - props.selectPeriodCallback(this.granularityProps.granularityType); const sliderSelection = selectAll("rect.periodSlicerRect"); @@ -148,11 +150,12 @@ export class GranularityBase implements IGranularity { this.renderSlider( granularitySelection, - props.granularSettings, + props.granularSettings.sliderColor.value.value, + granularityType ); }); - granularitySelection.attr("fill", props.granularSettings.scaleColor); + granularitySelection.attr("fill", props.granularSettings.scaleColor.value.value); return granularitySelection; } @@ -292,17 +295,18 @@ export class GranularityBase implements IGranularity { private renderSlider( selection: Selection, - granularSettings: GranularitySettings, + sliderColor: string, + granularity: GranularityType, ): void { selection .append("rect") .classed("periodSlicerRect", true) - .style("stroke", granularSettings.sliderColor) + .style("stroke", sliderColor) .attr("x", pixelConverter.toString(0 - this.sliderXOffset)) .attr("y", pixelConverter.toString(0 - this.sliderYOffset)) .attr("rx", pixelConverter.toString(this.sliderRx)) .attr("width", pixelConverter.toString(this.sliderWidth)) .attr("height", pixelConverter.toString(this.sliderHeight)) - .data([granularSettings.granularity]); + .data([granularity]); } } diff --git a/src/granularity/granularityRenderProps.ts b/src/granularity/granularityRenderProps.ts index ea9560d..99cca72 100644 --- a/src/granularity/granularityRenderProps.ts +++ b/src/granularity/granularityRenderProps.ts @@ -26,11 +26,11 @@ import { Selection } from "d3-selection"; -import { GranularitySettings } from "../settings/granularitySettings"; import { GranularityType } from "./granularityType"; +import {GranularitySettingsCard} from "../timeLineSettingsModel"; export interface IGranularityRenderProps { selection: Selection; - granularSettings: GranularitySettings; + granularSettings: GranularitySettingsCard; selectPeriodCallback: (granularityType: GranularityType) => void; } diff --git a/src/granularity/granularityType.ts b/src/granularity/granularityType.ts index 973ddc5..932ea95 100644 --- a/src/granularity/granularityType.ts +++ b/src/granularity/granularityType.ts @@ -25,9 +25,9 @@ */ export enum GranularityType { - year, - quarter, - month, - week, - day, + year = 0, + quarter = 1, + month = 2, + week = 3, + day = 4, } diff --git a/src/granularity/monthGranularity.ts b/src/granularity/monthGranularity.ts index 110ad8e..92b2c55 100644 --- a/src/granularity/monthGranularity.ts +++ b/src/granularity/monthGranularity.ts @@ -40,7 +40,7 @@ export class MonthGranularity extends GranularityBase { } public render(props: IGranularityRenderProps, isFirst: boolean): Selection { - if (!props.granularSettings.granularityMonthVisibility) { + if (!props.granularSettings.granularityMonthVisibility.value) { return null; } diff --git a/src/granularity/quarterGranularity.ts b/src/granularity/quarterGranularity.ts index f7aa1c7..e376011 100644 --- a/src/granularity/quarterGranularity.ts +++ b/src/granularity/quarterGranularity.ts @@ -40,7 +40,7 @@ export class QuarterGranularity extends GranularityBase { } public render(props: IGranularityRenderProps, isFirst: boolean): Selection { - if (!props.granularSettings.granularityQuarterVisibility) { + if (!props.granularSettings.granularityQuarterVisibility.value) { return null; } diff --git a/src/granularity/weekGranularity.ts b/src/granularity/weekGranularity.ts index 3496172..100a677 100644 --- a/src/granularity/weekGranularity.ts +++ b/src/granularity/weekGranularity.ts @@ -47,7 +47,7 @@ export class WeekGranularity extends GranularityBase { } public render(props: IGranularityRenderProps, isFirst: boolean): Selection { - if (!props.granularSettings.granularityWeekVisibility) { + if (!props.granularSettings.granularityWeekVisibility.value) { return null; } diff --git a/src/granularity/yearGranularity.ts b/src/granularity/yearGranularity.ts index d6bc8aa..edddec0 100644 --- a/src/granularity/yearGranularity.ts +++ b/src/granularity/yearGranularity.ts @@ -51,7 +51,7 @@ export class YearGranularity extends GranularityBase { } public render(props: IGranularityRenderProps, isFirst: boolean): Selection { - if (!props.granularSettings.granularityYearVisibility) { + if (!props.granularSettings.granularityYearVisibility.value) { return null; } diff --git a/src/settings/calendarSettings.ts b/src/settings/calendarSettings.ts deleted file mode 100644 index 3a9c38d..0000000 --- a/src/settings/calendarSettings.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -export class CalendarSettings { - public month: number = 0; - public day: number = 1; -} diff --git a/src/settings/cellsSettings.ts b/src/settings/cellsSettings.ts deleted file mode 100644 index 7ad551e..0000000 --- a/src/settings/cellsSettings.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -export class CellsSettings { - public fillSelected: string = "#ADD8E6"; - public fillUnselected: string = ""; - public strokeColor: string = "#333444"; - public selectedStrokeColor: string = "#333444"; -} diff --git a/src/settings/cursorSettings.ts b/src/settings/cursorSettings.ts deleted file mode 100644 index c10a31c..0000000 --- a/src/settings/cursorSettings.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -export class CursorSettings { - public color: string = "#808080"; -} diff --git a/src/settings/forceSelectionSettings.ts b/src/settings/forceSelectionSettings.ts deleted file mode 100644 index 2c8f36a..0000000 --- a/src/settings/forceSelectionSettings.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -export class ForceSelectionSettings { - public currentPeriod: boolean = false; - public latestAvailableDate: boolean = false; -} diff --git a/src/settings/generalSettings.ts b/src/settings/generalSettings.ts deleted file mode 100644 index 51298ab..0000000 --- a/src/settings/generalSettings.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import { DatePeriodBase } from "../datePeriod/datePeriodBase"; - -export class GeneralSettings { - public datePeriod: DatePeriodBase | string = DatePeriodBase.CREATEEMPTY(); -} diff --git a/src/settings/granularitySettings.ts b/src/settings/granularitySettings.ts deleted file mode 100644 index 11f7629..0000000 --- a/src/settings/granularitySettings.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import { GranularityType } from "../granularity/granularityType"; - -export class GranularitySettings { - public show: boolean = true; - public scaleColor: string = "#000000"; - public sliderColor: string = "#AAAAAA"; - public granularity: GranularityType = GranularityType.month; - public granularityYearVisibility: boolean = true; - public granularityQuarterVisibility: boolean = true; - public granularityMonthVisibility: boolean = true; - public granularityWeekVisibility: boolean = true; - public granularityDayVisibility: boolean = true; -} diff --git a/src/settings/labelsSettings.ts b/src/settings/labelsSettings.ts deleted file mode 100644 index 8bb1bf6..0000000 --- a/src/settings/labelsSettings.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -export class LabelsSettings { - public show: boolean = true; - public displayAll: boolean = true; - public fontColor: string = "#777777"; - public textSize: number = 9; -} diff --git a/src/settings/scrollAutoAdjustment.ts b/src/settings/scrollAutoAdjustment.ts deleted file mode 100644 index 4b91fc4..0000000 --- a/src/settings/scrollAutoAdjustment.ts +++ /dev/null @@ -1,30 +0,0 @@ - -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -export class ScrollAutoAdjustment { - public show: boolean = false; -} diff --git a/src/settings/settings.ts b/src/settings/settings.ts deleted file mode 100644 index ee17b9f..0000000 --- a/src/settings/settings.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import { dataViewObjectsParser } from "powerbi-visuals-utils-dataviewutils"; - -import { CalendarSettings } from "./calendarSettings"; -import { CellsSettings } from "./cellsSettings"; -import { CursorSettings } from "./cursorSettings"; -import { ForceSelectionSettings } from "./forceSelectionSettings"; -import { GeneralSettings } from "./generalSettings"; -import { GranularitySettings } from "./granularitySettings"; -import { LabelsSettings } from "./labelsSettings"; -import { ScrollAutoAdjustment } from "./scrollAutoAdjustment"; -import { WeekDaySettings } from "./weekDaySettings"; -import { WeeksDetermintaionStandardsSettings } from "./weeksDetermintaionStandardsSettings"; - -export class Settings extends dataViewObjectsParser.DataViewObjectsParser { - public general: GeneralSettings = new GeneralSettings(); - public calendar: CalendarSettings = new CalendarSettings(); - public forceSelection: ForceSelectionSettings = new ForceSelectionSettings(); - public weekDay: WeekDaySettings = new WeekDaySettings(); - public rangeHeader: LabelsSettings = new LabelsSettings(); - public cells: CellsSettings = new CellsSettings(); - public granularity: GranularitySettings = new GranularitySettings(); - public labels: LabelsSettings = new LabelsSettings(); - public scrollAutoAdjustment: ScrollAutoAdjustment = new ScrollAutoAdjustment(); - public cursor: CursorSettings = new CursorSettings(); - public weeksDetermintaionStandards: WeeksDetermintaionStandardsSettings = new WeeksDetermintaionStandardsSettings(); -} diff --git a/src/settings/weekDaySettings.ts b/src/settings/weekDaySettings.ts deleted file mode 100644 index fbce2c8..0000000 --- a/src/settings/weekDaySettings.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -export class WeekDaySettings { - public daySelection: boolean = true; - public day: number = 0; -} diff --git a/src/settings/weeksDetermintaionStandardsSettings.ts b/src/settings/weeksDetermintaionStandardsSettings.ts deleted file mode 100644 index 3fb97d6..0000000 --- a/src/settings/weeksDetermintaionStandardsSettings.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Power BI Visualizations - * - * Copyright (c) Microsoft Corporation - * All rights reserved. - * MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the ""Software""), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -import { WeekStandards } from "../calendars/weekStandards"; - -export class WeeksDetermintaionStandardsSettings { - public weekStandard: number = WeekStandards.NotSet; -} diff --git a/src/timeLine.ts b/src/timeLine.ts index a4bb9b6..1fbd3f1 100644 --- a/src/timeLine.ts +++ b/src/timeLine.ts @@ -26,47 +26,26 @@ import "../style/visual.less"; -import "core-js/stable"; +import {select as d3Select, selectAll as d3SelectAll, Selection as D3Selection,} from "d3-selection"; -import { - select as d3Select, - selectAll as d3SelectAll, - Selection as D3Selection, -} from "d3-selection"; - -import { - drag as d3Drag, -} from "d3-drag"; +import {D3DragEvent} from "d3-drag"; -import { - arc as d3Arc, -} from "d3-shape"; +import {arc as d3Arc} from "d3-shape"; import powerbiVisualsApi from "powerbi-visuals-api"; +import powerbi from "powerbi-visuals-api"; -import ISelectionManager = powerbiVisualsApi.extensibility.ISelectionManager; +import {AdvancedFilter, IFilterColumnTarget,} from "powerbi-models"; -import { - AdvancedFilter, - IFilterColumnTarget, -} from "powerbi-models"; +import {CssConstants, manipulation as svgManipulation,} from "powerbi-visuals-utils-svgutils"; -import { - CssConstants, - manipulation as svgManipulation, -} from "powerbi-visuals-utils-svgutils"; +import {pixelConverter} from "powerbi-visuals-utils-typeutils"; -import { pixelConverter } from "powerbi-visuals-utils-typeutils"; +import {interfaces as formattingInterfaces, textMeasurementService} from "powerbi-visuals-utils-formattingutils"; -import { textMeasurementService, interfaces as formattingInterfaces } from "powerbi-visuals-utils-formattingutils"; +import {interactivityFilterService} from "powerbi-visuals-utils-interactivityutils"; -import { interactivityFilterService } from "powerbi-visuals-utils-interactivityutils"; -import extractFilterColumnTarget = interactivityFilterService.extractFilterColumnTarget; - -import { - dataLabelInterfaces, - dataLabelUtils, -} from "powerbi-visuals-utils-chartutils"; +import {dataLabelInterfaces, dataLabelUtils,} from "powerbi-visuals-utils-chartutils"; import { ICursorDataPoint, @@ -79,64 +58,65 @@ import { ITimelineSelectors, } from "./dataInterfaces"; -import { CalendarSettings } from "./settings/calendarSettings"; -import { CellsSettings } from "./settings/cellsSettings"; -import { LabelsSettings } from "./settings/labelsSettings"; -import { Settings } from "./settings/settings"; +import {GranularityData} from "./granularity/granularityData"; +import {GranularityNames} from "./granularity/granularityNames"; +import {GranularityType} from "./granularity/granularityType"; -import { GranularityData } from "./granularity/granularityData"; -import { GranularityNames } from "./granularity/granularityNames"; -import { GranularityType } from "./granularity/granularityType"; +import {ITimelineDatePeriod, ITimelineDatePeriodBase,} from "./datePeriod/datePeriod"; -import { - ITimelineDatePeriod, - ITimelineDatePeriodBase, -} from "./datePeriod/datePeriod"; +import {DatePeriodBase} from "./datePeriod/datePeriodBase"; -import { DatePeriodBase } from "./datePeriod/datePeriodBase"; - -import { Calendar } from "./calendars/calendar"; -import { Utils } from "./utils"; -import { CalendarISO8061 } from "./calendars/calendarISO8061"; -import { WeekStandards } from "./calendars/weekStandards"; -import { CalendarFactory } from "./calendars/calendarFactory"; +import {Calendar, CalendarFormat, WeekdayFormat} from "./calendars/calendar"; +import {Utils} from "./utils"; +import {WeekStandard} from "./calendars/weekStandard"; +import {CalendarFactory} from "./calendars/calendarFactory"; +import { + CalendarSettingsCard, + CellsSettingsCard, + RangeHeaderSettingsCard, + TimeLineSettingsModel, +} from "./timeLineSettingsModel"; +import {FormattingSettingsService} from "powerbi-visuals-utils-formattingmodel"; +import ISelectionManager = powerbiVisualsApi.extensibility.ISelectionManager; +import extractFilterColumnTarget = interactivityFilterService.extractFilterColumnTarget; +import {Month} from "./calendars/month"; +import {Weekday} from "./calendars/weekday"; +import {Behavior} from "./behavior"; interface IAdjustedFilterDatePeriod { period: DatePeriodBase; adaptedDataEndDate: Date; } + export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual { - public static SET_VALID_CALENDAR_SETTINGS(calendarSettings: CalendarSettings): void { - const defaultSettings: Settings = (Settings.getDefault()); + public static ADJUST_CALENDAR_DAY_SETTINGS(calendarSettings: CalendarFormat): number { const theLatestDayOfMonth: number = Utils.GET_THE_LATEST_DAY_OF_MONTH(calendarSettings.month); - calendarSettings.day = Math.max( - defaultSettings.calendar.day, + const adjustedDay = Math.max( + CalendarSettingsCard.DefaultDay, Math.min(theLatestDayOfMonth, calendarSettings.day), ); + + return adjustedDay; } public static SELECT_CURRENT_PERIOD( datePeriod: ITimelineDatePeriodBase, granularity: GranularityType, - calendar, + calendar: Calendar, ) { return this.SELECT_PERIOD(datePeriod, granularity, calendar, Utils.RESET_TIME(new Date())); } - public static CONVERTER( - timelineData: ITimelineData, - timelineProperties: ITimelineProperties, - timelineGranularityData: GranularityData, + public CONVERTER( dataView: powerbiVisualsApi.DataView, initialized: boolean, - timelineSettings: Settings, viewport: powerbiVisualsApi.IViewport, previousCalendar: Calendar, ): Calendar { - if (this.isDataViewValid(dataView)) { + if (Timeline.isDataViewValid(dataView)) { return null; } @@ -145,7 +125,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual let endDate: Date; if (!initialized) { - timelineData.cursorDataPoints = [{ + this.timelineData.cursorDataPoints = [{ cursorIndex: 0, selectionIndex: Timeline.DefaultSelectionStartIndex, x: Timeline.DefaultCursorDatapointX, @@ -159,42 +139,47 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual }]; } + const {weekStandard, calendarFormat, weekDayFormat} = Timeline.computeCalendarFormat(this.visualSettings); + const isCalendarChanged: boolean = previousCalendar - && previousCalendar.isChanged(timelineSettings.calendar, timelineSettings.weekDay, timelineSettings.weeksDetermintaionStandards); + && previousCalendar.isChanged(calendarFormat, weekDayFormat, weekStandard); - if (timelineData && timelineData.currentGranularity) { - startDate = Utils.GET_START_SELECTION_DATE(timelineData); - endDate = Utils.GET_END_SELECTION_DATE(timelineData); + if (this.timelineData && this.timelineData.currentGranularity) { + startDate = Utils.GET_START_SELECTION_DATE(this.timelineData); + endDate = Utils.GET_END_SELECTION_DATE(this.timelineData); } if (!initialized || isCalendarChanged) { - calendar = new CalendarFactory().create(timelineSettings.weeksDetermintaionStandards, timelineSettings.calendar, timelineSettings.weekDay); - timelineData.currentGranularity = timelineGranularityData.getGranularity( - timelineSettings.granularity.granularity); + calendar = new CalendarFactory().create(weekStandard, calendarFormat, weekDayFormat); + const granularity: GranularityType = this.visualSettings.granularity.granularity.value + ? this.visualSettings.granularity.granularity.value.value + : GranularityType.month; + + this.timelineData.currentGranularity = this.timelineGranularityData.getGranularity(granularity); } else { calendar = previousCalendar; } if (!initialized) { - timelineData.selectionStartIndex = 0; - timelineData.selectionEndIndex = timelineData.currentGranularity.getDatePeriods().length - 1; + this.timelineData.selectionStartIndex = 0; + this.timelineData.selectionEndIndex = this.timelineData.currentGranularity.getDatePeriods().length - 1; } const category: powerbiVisualsApi.DataViewCategoryColumn = dataView.categorical.categories[0]; - timelineData.filterColumnTarget = extractFilterColumnTarget(category); + this.timelineData.filterColumnTarget = extractFilterColumnTarget(category); if (category.source.type.numeric) { - ((timelineData.filterColumnTarget)).ref = "Date"; + ((this.timelineData.filterColumnTarget)).ref = "Date"; } if (isCalendarChanged && startDate && endDate) { - Utils.UNSEPARATE_SELECTION(timelineData.currentGranularity.getDatePeriods()); - Utils.SEPARATE_SELECTION(timelineData, startDate, endDate); + Utils.UNSEPARATE_SELECTION(this.timelineData.currentGranularity.getDatePeriods()); + Utils.SEPARATE_SELECTION(this.timelineData, startDate, endDate); } - const timelineElements: ITimelineDatePeriod[] = timelineData.currentGranularity.getDatePeriods(); + const timelineElements: ITimelineDatePeriod[] = this.timelineData.currentGranularity.getDatePeriods(); - timelineData.timelineDataPoints = []; + this.timelineData.timelineDataPoints = []; for (const currentTimePeriod of timelineElements) { const datapoint: ITimelineDataPoint = { @@ -202,34 +187,54 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual index: currentTimePeriod.index, }; - timelineData.timelineDataPoints.push(datapoint); + this.timelineData.timelineDataPoints.push(datapoint); } - const countFullCells: number = timelineData.currentGranularity + const countFullCells: number = this.timelineData.currentGranularity .getDatePeriods() .filter((datePeriod: ITimelineDatePeriod) => { return datePeriod.index % 1 === 0; }) .length; - Timeline.setMeasures( - timelineSettings.labels, - timelineData.currentGranularity.getType(), + this.setMeasures( + this.timelineData.currentGranularity.getType(), countFullCells, viewport, - timelineProperties, Timeline.TimelineMargins, ); - Timeline.updateCursors(timelineData); + this.updateCursors(this.timelineData); return calendar; } + private static computeCalendarFormat(timelineSettings: TimeLineSettingsModel) { + const weekStandard: WeekStandard = timelineSettings.weeksDeterminationStandards.weekStandard.value + ? timelineSettings.weeksDeterminationStandards.weekStandard.value.value + : WeekStandard.NotSet; + + const calendarFormat: CalendarFormat = { + month: timelineSettings.calendar.month.value + ? timelineSettings.calendar.month.value.value + : Month.January, + day: timelineSettings.calendar.day.value, + } + + const weekDayFormat: WeekdayFormat = { + daySelection: timelineSettings.weekDay.daySelection.value, + day: timelineSettings.weekDay.day.value + ? timelineSettings.weekDay.day.value.value + : Weekday.Sunday, + } + + return {weekStandard, calendarFormat, weekDayFormat}; + } + public static SELECT_PERIOD( datePeriod: ITimelineDatePeriodBase, granularity: GranularityType, - calendar, + calendar: Calendar, periodDate: Date, ) { let startDate: Date = periodDate; @@ -400,7 +405,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual UpperTextCell: CssConstants.createClassAndSelector("upperTextCell"), }; - private static updateCursors(timelineData: ITimelineData): void { + private updateCursors(timelineData: ITimelineData): void { const startDate: ITimelineDatePeriod = timelineData.timelineDataPoints[timelineData.selectionStartIndex].datePeriod; const endDate: ITimelineDatePeriod = timelineData.timelineDataPoints[timelineData.selectionEndIndex].datePeriod; @@ -423,23 +428,21 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual return false; } - private static setMeasures( - labelsSettings: LabelsSettings, + private setMeasures( granularityType: GranularityType, datePeriodsCount: number, viewport: powerbiVisualsApi.IViewport, - timelineProperties: ITimelineProperties, timelineMargins: ITimelineMargins, ): void { - timelineProperties.cellsYPosition = timelineProperties.textYPosition; + this.timelineProperties.cellsYPosition = this.timelineProperties.textYPosition; - const labelSize: number = pixelConverter.fromPointToPixel(labelsSettings.textSize); + const labelSize: number = pixelConverter.fromPointToPixel(this.visualSettings.labels.textSize.value); - if (labelsSettings.show) { - const granularityOffset: number = labelsSettings.displayAll ? granularityType + 1 : 1; + if (this.visualSettings.labels.show.value) { + const granularityOffset: number = this.visualSettings.labels.displayAll.value ? granularityType + 1 : 1; - timelineProperties.cellsYPosition += labelSize + this.timelineProperties.cellsYPosition += labelSize * Timeline.LabelSizeFactor * granularityOffset; } @@ -450,9 +453,9 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual Math.min( timelineMargins.MaxCellHeight, svgHeight - - timelineProperties.cellsYPosition + - this.timelineProperties.cellsYPosition - Timeline.TimelinePropertiesHeightOffset - + (Timeline.TimelineMargins.LegendHeight - timelineProperties.legendHeight), + + (Timeline.TimelineMargins.LegendHeight - this.timelineProperties.legendHeight), )); // Height is deducted here to take account of edge cursors width @@ -461,18 +464,24 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual timelineMargins.MinCellWidth, (viewport.width - height - Timeline.ViewportWidthAdjustment) / (datePeriodsCount)); - timelineProperties.cellHeight = height; - timelineProperties.cellWidth = width; + if (this.visualSettings.cells.enableManualSizing.value) { + this.timelineProperties.cellHeight = this.visualSettings.cells.height.value; + this.timelineProperties.cellWidth = this.visualSettings.cells.width.value; + } else { + this.timelineProperties.cellHeight = height; + this.timelineProperties.cellWidth = width; + + this.visualSettings.cells.height.value = Math.round(height); + this.visualSettings.cells.width.value = Math.round(width); + } } - private static parseSettings( - dataView: powerbiVisualsApi.DataView, + private parseJsonFilters( + settings: TimeLineSettingsModel, jsonFilters: AdvancedFilter[], - colorPalette: powerbiVisualsApi.extensibility.ISandboxExtendedColorPalette, - ): Settings { - const settings: Settings = Settings.parse(dataView); - - Timeline.SET_VALID_CALENDAR_SETTINGS(settings.calendar); + ): void { + const { calendarFormat } = Timeline.computeCalendarFormat(settings); + settings.calendar.day.value = Timeline.ADJUST_CALENDAR_DAY_SETTINGS(calendarFormat); if (jsonFilters && jsonFilters[0] @@ -484,36 +493,37 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual const endDate: Date = new Date(`${jsonFilters[0].conditions[1].value}`); if (!isNaN(startDate.getTime()) && !isNaN(endDate.getTime())) { - settings.general.datePeriod = DatePeriodBase.CREATE(startDate, endDate); + this.filterDatePeriod = DatePeriodBase.CREATE(startDate, endDate); } else { - settings.general.datePeriod = DatePeriodBase.CREATEEMPTY(); + this.filterDatePeriod = DatePeriodBase.CREATEEMPTY(); } } else { - settings.general.datePeriod = DatePeriodBase.CREATEEMPTY(); + this.filterDatePeriod = DatePeriodBase.CREATEEMPTY(); } + } - if (colorPalette.isHighContrast) { + private setHighContrastColors() { + if (this.host.colorPalette.isHighContrast) { const { foreground, background, - } = colorPalette; + } = this.host.colorPalette; - settings.rangeHeader.fontColor = foreground.value; + this.visualSettings.rangeHeader.fontColor.value.value = foreground.value; - settings.cells.fillSelected = foreground.value; - settings.cells.fillUnselected = background.value; - settings.cells.strokeColor = foreground.value; - settings.cells.selectedStrokeColor = background.value; + this.visualSettings.cells.fillSelected.value.value = foreground.value; + this.visualSettings.cells.fillUnselected.value.value = background.value; - settings.granularity.scaleColor = foreground.value; - settings.granularity.sliderColor = foreground.value; + this.visualSettings.cells.strokeUnselected.value.value = foreground.value; + this.visualSettings.cells.strokeSelected.value.value = background.value; - settings.labels.fontColor = foreground.value; + this.visualSettings.granularity.scaleColor.value.value = foreground.value; + this.visualSettings.granularity.sliderColor.value.value = foreground.value; - settings.cursor.color = foreground.value; - } + this.visualSettings.labels.fontColor.value.value = foreground.value; - return settings; + this.visualSettings.cursor.color.value.value = foreground.value; + } } /** @@ -522,7 +532,8 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual public timelineData: ITimelineData; public calendar: Calendar; - private settings: Settings; + private visualSettings: TimeLineSettingsModel; + private formattingSettingsService: FormattingSettingsService; private timelineProperties: ITimelineProperties; @@ -551,6 +562,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual private svgWidth: number; private datePeriod: ITimelineDatePeriodBase; + private filterDatePeriod: DatePeriodBase | string = DatePeriodBase.CREATEEMPTY(); private prevFilteredStartDate: Date | null = null; private prevFilteredEndDate: Date | null = null; @@ -567,18 +579,6 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual private isForceSelectionReset: boolean = false; private selectionManager: ISelectionManager; - - private cursorDragBehavior = d3Drag() - .subject((cursorDataPoint: ICursorDataPoint) => { - cursorDataPoint.x = cursorDataPoint.selectionIndex * this.timelineProperties.cellWidth; - - return cursorDataPoint; - }) - .on("drag", null) - .on("end", null) - .on("drag", this.onCursorDrag.bind(this)) - .on("end", this.onCursorDragEnd.bind(this)); - private calendarFactory: CalendarFactory = null; constructor(options: powerbiVisualsApi.extensibility.visual.VisualConstructorOptions) { @@ -594,6 +594,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.locale = this.host.locale; this.localizationManager = this.host.createLocalizationManager(); + this.formattingSettingsService = new FormattingSettingsService(this.localizationManager); this.timelineProperties = { bottomMargin: Timeline.TimelineMargins.BottomMargin, @@ -612,9 +613,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.rootSelection = d3Select(element) .append("div") - .classed("timeline-component", true) - .on("click", null) - .on("click", () => this.clearUserSelection()); + .classed("timeline-component", true); this.headerWrapperSelection = this.rootSelection .append("div"); @@ -678,12 +677,8 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual // it contains dates from data view. this.datePeriod = this.createDatePeriod(this.dataView); - // Setting parsing was moved here from createTimelineData because settings values may be modified before the function is called. - this.settings = Timeline.parseSettings( - this.dataView, - (this.options.jsonFilters), - this.host.colorPalette, - ); + this.visualSettings = this.formattingSettingsService.populateFormattingSettingsModel(TimeLineSettingsModel, this.dataView); + this.visualSettings.setLocalizedOptions(this.localizationManager); if (!this.initialized) { this.timelineData = { @@ -692,12 +687,15 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual }; } + this.parseJsonFilters(this.visualSettings, (this.options.jsonFilters)); + this.setHighContrastColors(); + this.adjustHeightOfElements(options.viewport.width); this.timelineGranularityData = new GranularityData(this.datePeriod.startDate, this.datePeriod.endDate); this.createTimelineData( - this.settings, + this.visualSettings, this.datePeriod.startDate, this.datePeriod.endDate, this.timelineGranularityData, @@ -705,13 +703,16 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.localizationManager, ); - this.updateCalendar(this.settings); + this.updateCalendar(); const adjustedPeriod: IAdjustedFilterDatePeriod = this.adjustFilterDatePeriod(); const datePeriod: ITimelineDatePeriodBase = this.datePeriod; - const granularity: GranularityType = this.settings.granularity.granularity; - const isCurrentPeriodSelected: boolean = !this.isForceSelectionReset && this.settings.forceSelection.currentPeriod; - const isLatestAvailableDateSelected: boolean = !this.isForceSelectionReset && this.settings.forceSelection.latestAvailableDate; + const granularity: GranularityType = this.visualSettings.granularity.granularity.value + ? this.visualSettings.granularity.granularity.value.value + : GranularityType.month; + + const isCurrentPeriodSelected: boolean = !this.isForceSelectionReset && this.visualSettings.forceSelection.currentPeriod.value; + const isLatestAvailableDateSelected: boolean = !this.isForceSelectionReset && this.visualSettings.forceSelection.latestAvailableDate.value; const isForceSelected: boolean = !this.isForceSelectionReset && (isCurrentPeriodSelected || isLatestAvailableDateSelected); this.isForceSelectionReset = false; // Reset it to default state to allow re-enabling Force Selection let currentForceSelectionResult = { startDate: null, endDate: null }; @@ -745,34 +746,50 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } if (adjustedPeriod.period.startDate && adjustedPeriod.period.endDate) { - this.changeGranularity(this.settings.granularity.granularity, adjustedPeriod.period.startDate, adjustedPeriod.period.endDate); - this.updateCalendar(this.settings); + this.changeGranularity(granularity, adjustedPeriod.period.startDate, adjustedPeriod.period.endDate); + this.updateCalendar(); } this.renderGranularityFrame(granularity); this.render( this.timelineData, - this.settings, + this.visualSettings, this.timelineProperties, options, ); - this.handleContextMenu(); + Behavior.bindEvents({ + selectionManager: this.selectionManager, + cells: { + selection: this.mainGroupSelection.selectAll(Timeline.TimelineSelectors.CellRect.selectorName), + callback: this.onCellClickHandler.bind(this), + cellWidth: this.timelineProperties.cellWidth, + }, + cursors: { + selection: this.cursorGroupSelection.selectAll(Timeline.TimelineSelectors.SelectionCursor.selectorName), + onDrag: this.onCursorDrag.bind(this), + onEnd: this.onCursorDragEnd.bind(this), + }, + clearCatcher: this.rootSelection, + // spyOn changes clearUserSelection, anonymous function is used to have link to spied function + clearSelectionHandler: () => { this.clearUserSelection() }, + }); + } catch (ex) { this.host.eventService.renderingFailed(options, JSON.stringify(ex)); } this.host.eventService.renderingFinished(options); } - public fillCells(visSettings: Settings): void { + public fillCells(visSettings: TimeLineSettingsModel): void { const dataPoints: ITimelineDataPoint[] = this.timelineData.timelineDataPoints; const cellSelection: D3Selection = this.mainGroupSelection .selectAll(Timeline.TimelineSelectors.CellRect.selectorName) .data(dataPoints); - const cellsSettings: CellsSettings = visSettings.cells; + const cellsSettings: CellsSettingsCard = visSettings.cells; let singleCaseDone: boolean = false; @@ -780,23 +797,24 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual .attr("fill", (dataPoint: ITimelineDataPoint, index: number) => { const isSelected: boolean = Utils.IS_GRANULE_SELECTED(dataPoint, this.timelineData); - if (visSettings.scrollAutoAdjustment.show && isSelected && !singleCaseDone) { + if (visSettings.scrollAutoAdjustment.show.value && isSelected && !singleCaseDone) { const selectedGranulaPos: number = ((cellSelection.nodes()[index])).x.baseVal.value; this.selectedGranulaPos = selectedGranulaPos; singleCaseDone = true; } return isSelected - ? cellsSettings.fillSelected - : (cellsSettings.fillUnselected || Utils.DefaultCellColor); + ? cellsSettings.fillSelected.value.value + : (cellsSettings.fillUnselected.value.value || Utils.DefaultCellColor); }) .style("stroke", (dataPoint: ITimelineDataPoint) => { const isSelected: boolean = Utils.IS_GRANULE_SELECTED(dataPoint, this.timelineData); return isSelected - ? cellsSettings.selectedStrokeColor - : cellsSettings.strokeColor; - }); + ? cellsSettings.strokeSelected.value.value + : cellsSettings.strokeUnselected.value.value; + }) + .style("stroke-width", cellsSettings.strokeWidth.value + "px"); } public renderCells(timelineData: ITimelineData, timelineProperties: ITimelineProperties, yPos: number): void { @@ -817,10 +835,6 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual .enter() .append("rect") .classed(Timeline.TimelineSelectors.CellRect.className, true) - .on("click", null) - .on("touchstart", null) - .on("click", this.handleClick.bind(this)) - .on("touchstart", this.handleClick.bind(this)) .merge(cellsSelection) .attr("x", (dataPoint: ITimelineDataPoint) => { const position: number = totalX; @@ -830,14 +844,16 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual return pixelConverter.toString(position); }) .attr("y", pixelConverter.toString(yPos)) - .attr("height", pixelConverter.toString(timelineProperties.cellHeight)) + .attr("height", pixelConverter.toString(timelineProperties.cellHeight - this.visualSettings.cells.strokeWidth.value)) .attr("width", (dataPoint: ITimelineDataPoint) => { - return pixelConverter.toString(dataPoint.datePeriod.fraction * timelineProperties.cellWidth); + return pixelConverter.toString( + dataPoint.datePeriod.fraction * timelineProperties.cellWidth - this.visualSettings.cells.gapWidth.value + ); }) .append("title") .text((dataPoint: ITimelineDataPoint) => timelineData.currentGranularity.generateLabel(dataPoint.datePeriod).title); - this.fillCells(this.settings); + this.fillCells(this.visualSettings); } public renderCursors( @@ -859,8 +875,14 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual .classed(Timeline.TimelineSelectors.SelectionCursor.className, true) .merge(cursorSelection) .attr("transform", (cursorDataPoint: ICursorDataPoint) => { - const dx: number = cursorDataPoint.selectionIndex * this.timelineProperties.cellWidth; - const dy: number = cellHeight / Timeline.CellHeightDivider + cellsYPosition; + let dx: number = cursorDataPoint.selectionIndex * this.timelineProperties.cellWidth; + + // right cursor + if (cursorDataPoint.cursorIndex === 1) { + dx -= this.visualSettings.cells.gapWidth.value; + } + + const dy: number = (cellHeight - this.visualSettings.cells.strokeWidth.value) / Timeline.CellHeightDivider + cellsYPosition; return svgManipulation.translate(dx, dy); }) @@ -874,22 +896,21 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual return cursorDataPoint.cursorIndex * Math.PI + 2 * Math.PI; }), ) - .style("fill", this.settings.cursor.color) - .call(this.cursorDragBehavior); + .style("fill", this.visualSettings.cursor.show.value ? this.visualSettings.cursor.color.value.value : "transparent") } - public renderTimeRangeText(timelineData: ITimelineData, rangeHeaderSettings: LabelsSettings): void { + public renderTimeRangeText(timelineData: ITimelineData, rangeHeaderSettings: RangeHeaderSettingsCard): void { const leftMargin: number = (GranularityNames.length + Timeline.GranularityNamesLength) * this.timelineProperties.elementWidth; const maxWidth: number = this.svgWidth - leftMargin - this.timelineProperties.leftMargin - - rangeHeaderSettings.textSize; + - rangeHeaderSettings.textSize.value; d3SelectAll("g." + Timeline.TimelineSelectors.RangeTextArea.className).remove(); - if (rangeHeaderSettings.show && maxWidth > 0) { + if (rangeHeaderSettings.show.value && maxWidth > 0) { this.rangeTextSelection = this.headerSelection .append("g") .classed(Timeline.TimelineSelectors.RangeTextArea.className, true) @@ -898,7 +919,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual const timeRangeText: string = Utils.TIME_RANGE_TEXT(timelineData); const labelFormattedTextOptions: dataLabelInterfaces.LabelFormattedTextOptions = { - fontSize: rangeHeaderSettings.textSize, + fontSize: rangeHeaderSettings.textSize.value, label: timeRangeText, maxWidth, }; @@ -912,8 +933,8 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual .attr("x", GranularityNames.length * (this.timelineProperties.elementWidth + this.timelineProperties.leftMargin)) .attr("y", Timeline.DefaultRangeTextSelectionY - positionOffset) - .attr("fill", rangeHeaderSettings.fontColor) - .style("font-size", pixelConverter.fromPointToPixel(rangeHeaderSettings.textSize)) + .attr("fill", rangeHeaderSettings.fontColor.value.value) + .style("font-size", pixelConverter.fromPointToPixel(rangeHeaderSettings.textSize.value)) .text(actualText) .append("title") .text(timeRangeText); @@ -995,43 +1016,14 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.applyDatePeriod(null, null, target); } - /** - * This function returns the values to be displayed in the property pane for each object. - * Usually it is a bind pass of what the property pane gave you, but sometimes you may want to do - * validation and return other values/defaults. - */ - public enumerateObjectInstances(options: powerbiVisualsApi.EnumerateVisualObjectInstancesOptions): powerbiVisualsApi.VisualObjectInstanceEnumeration { - if (options.objectName === "general") { - return []; + public getFormattingModel(): powerbi.visuals.FormattingModel { + // These options have no sense if ISO standard was picked + if (this.visualSettings.weeksDeterminationStandards.weekStandard.value.value === WeekStandard.ISO8061) { + this.visualSettings.weekDay.disabled = true; + this.visualSettings.calendar.disabled = true; } - const settings: Settings = this.settings || (Settings.getDefault()); - - const instancesEnumerator: powerbiVisualsApi.VisualObjectInstanceEnumeration = Settings.enumerateObjectInstances( - settings, - options, - ); - - const instances = (instancesEnumerator).instances - ? (instancesEnumerator).instances - : instancesEnumerator; - - if (options.objectName === "weekDay" - && !settings.weekDay.daySelection - && instances - && instances[0] - && instances[0].properties - ) { - delete instances[0].properties.day; - } - - // This options have no sense if ISO standard was picked - if ((options.objectName === "weekDay" || options.objectName === "calendar") - && settings.weeksDetermintaionStandards.weekStandard !== WeekStandards.NotSet) { - return null; - } - - return instances; + return this.formattingSettingsService.buildFormattingModel(this.visualSettings); } public selectPeriod(granularityType: GranularityType): void { @@ -1047,11 +1039,13 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual }], }); - this.settings.granularity.granularity = granularityType; + const selectedGranularity = this.visualSettings.granularity.granularity.items.find(granularityOption => granularityOption.value === granularityType) + this.visualSettings.granularity.granularity.value = selectedGranularity; } - public onCursorDrag(currentCursor: ICursorDataPoint): void { - const cursorOverElement: ITimelineCursorOverElement = this.findCursorOverElement(((require("d3").event)).x); + public onCursorDrag(event: D3DragEvent, currentCursor: ICursorDataPoint): void { + const mouseEvent: MouseEvent = event.sourceEvent; + const cursorOverElement: ITimelineCursorOverElement = this.findCursorOverElement(mouseEvent.x); if (!cursorOverElement) { return; @@ -1072,14 +1066,14 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual currentlyMouseOverElement.datePeriod.index + currentlyMouseOverElement.datePeriod.fraction; } - this.fillCells(this.settings); + this.fillCells(this.visualSettings); this.renderCursors( this.timelineData, this.timelineProperties.cellHeight, this.timelineProperties.cellsYPosition); - this.renderTimeRangeText(this.timelineData, this.settings.rangeHeader); + this.renderTimeRangeText(this.timelineData, this.visualSettings.rangeHeader); } /** @@ -1132,7 +1126,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual private adjustFilterDatePeriod(): IAdjustedFilterDatePeriod { // It contains date boundaties that was taken from current slicer filter (filter range). // If nothing is selected in slicer the boundaries will be null. - const filterDatePeriod: DatePeriodBase = (this.settings.general.datePeriod); + const filterDatePeriod: DatePeriodBase = (this.filterDatePeriod); // There may be the case when date boundaries that taken from data view are less than slicer filter dates. // The case may happen if there is another timeline slicer that works with the same data and already applied a filter. @@ -1141,7 +1135,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual && this.datePeriod.startDate && filterDatePeriod.startDate.getTime() < this.datePeriod.startDate.getTime() ) { - filterDatePeriod.startDate = null; + filterDatePeriod.startDate = this.datePeriod.startDate; } // End date from data is always less than date from slicer filter. // This means that we need to correct it before check. @@ -1163,10 +1157,10 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual private adjustHeightOfElements(viewportWidth: number): void { this.timelineProperties.legendHeight = 0; - if (this.settings.rangeHeader.show) { + if (this.visualSettings.rangeHeader.show.value) { this.timelineProperties.legendHeight = Timeline.TimelineMargins.LegendHeightRange; } - if (this.settings.granularity.show) { + if (this.visualSettings.granularity.show.value) { this.timelineProperties.legendHeight = Timeline.TimelineMargins.LegendHeight; } @@ -1181,8 +1175,8 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual private renderGranularityFrame(granularity: GranularityType): void { d3SelectAll("g." + Timeline.TimelineSelectors.TimelineSlicer.className).remove(); - if (this.settings.granularity.show) { - const startXpoint: number = this.timelineProperties.startXpoint; + if (this.visualSettings.granularity.show.value) { + const startXPoint: number = this.timelineProperties.startXpoint; const elementWidth: number = this.timelineProperties.elementWidth; this.selectorSelection = this.headerSelection @@ -1190,7 +1184,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual .classed(Timeline.TimelineSelectors.TimelineSlicer.className, true); this.timelineGranularityData.renderGranularities({ - granularSettings: this.settings.granularity, + granularSettings: this.visualSettings.granularity, selectPeriodCallback: (granularityType: GranularityType) => { this.selectPeriod(granularityType); }, selection: this.selectorSelection, }); @@ -1198,41 +1192,14 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual // create selected period text this.selectorSelection .append("text") - .attr("fill", this.settings.granularity.scaleColor) + .attr("fill", this.visualSettings.granularity.scaleColor.value.value) .classed(Timeline.TimelineSelectors.PeriodSlicerSelection.className, true) .text(this.localizationManager.getDisplayName(Utils.GET_GRANULARITY_NAME_KEY(granularity))) - .attr("x", pixelConverter.toString(startXpoint + Timeline.SelectedTextSelectionFactor * elementWidth)) + .attr("x", pixelConverter.toString(startXPoint + Timeline.SelectedTextSelectionFactor * elementWidth)) .attr("y", pixelConverter.toString(Timeline.SelectedTextSelectionYOffset)); } } - private handleContextMenu(): void { - // handle context menu - this.rootSelection.on('contextmenu', () => { - const mouseEvent: MouseEvent = (require("d3").event); - - const emptySelection = { - "measures": [], - "dataMap": { - } - }; - - this.selectionManager.showContextMenu(emptySelection, { - x: mouseEvent.clientX, - y: mouseEvent.clientY - }); - mouseEvent.preventDefault(); - }); - } - - private handleClick(dataPoint: ITimelineDataPoint, index: number): void { - const event: MouseEvent = (require("d3").event); - - event.stopPropagation(); - - this.onCellClickHandler(dataPoint, index, event.altKey || event.shiftKey); - } - private addElements(): void { this.mainGroupSelection = this.mainSvgSelection .append("g") @@ -1258,14 +1225,16 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } private createTimelineData( - timelineSettings: Settings, + timelineSettings: TimeLineSettingsModel, startDate: Date, endDate: Date, timelineGranularityData: GranularityData, locale: string, localizationManager: powerbiVisualsApi.extensibility.ILocalizationManager, ) { - const calendar: Calendar = this.calendarFactory.create(timelineSettings.weeksDetermintaionStandards, timelineSettings.calendar, timelineSettings.weekDay); + const { weekStandard, calendarFormat, weekDayFormat } = Timeline.computeCalendarFormat(timelineSettings); + + const calendar: Calendar = this.calendarFactory.create(weekStandard, calendarFormat, weekDayFormat); timelineGranularityData.createGranularities(calendar, locale, localizationManager); timelineGranularityData.createLabels(); @@ -1286,9 +1255,13 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual || actualEndDate.getTime() !== prevEndDate.getTime(); + const granularityType: GranularityType = timelineSettings.granularity.granularity.value + ? timelineSettings.granularity.granularity.value.value + : GranularityType.month; + if (!changedSelection) { this.changeGranularity( - this.settings.granularity.granularity, + granularityType, startDate, actualEndDate, ); @@ -1298,14 +1271,10 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - private updateCalendar(timelineFormat: Settings): void { - this.calendar = Timeline.CONVERTER( - this.timelineData, - this.timelineProperties, - this.timelineGranularityData, + private updateCalendar(): void { + this.calendar = this.CONVERTER( this.options.dataViews[0], this.initialized, - timelineFormat, this.options.viewport, this.calendar, ); @@ -1313,11 +1282,11 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual private render( timelineData: ITimelineData, - timelineSettings: Settings, + settings: TimeLineSettingsModel, timelineProperties: ITimelineProperties, options: powerbiVisualsApi.extensibility.visual.VisualUpdateOptions, ): void { - const timelineDatapointsCount = this.timelineData.timelineDataPoints + const timelineDatapointCount = this.timelineData.timelineDataPoints .filter((dataPoint: ITimelineDataPoint) => { return dataPoint.index % 1 === 0; }) @@ -1325,9 +1294,9 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.svgWidth = Timeline.SvgWidthOffset + this.timelineProperties.cellHeight - + timelineProperties.cellWidth * timelineDatapointsCount; + + timelineProperties.cellWidth * timelineDatapointCount; - this.renderTimeRangeText(timelineData, timelineSettings.rangeHeader); + this.renderTimeRangeText(timelineData, settings.rangeHeader); this.rootSelection .attr("drag-resize-disabled", true) @@ -1389,7 +1358,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual .selectAll(Timeline.TimelineSelectors.TextLabel.selectorName) .remove(); - const yPos: number = this.renderBunchOfLabels(timelineSettings); + const yPos: number = this.renderBunchOfLabels(settings); this.renderCells( timelineData, @@ -1406,14 +1375,14 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.scrollAutoFocusFunc(this.selectedGranulaPos); } - private renderBunchOfLabels(timelineSettings: Settings): number { + private renderBunchOfLabels(settings: TimeLineSettingsModel): number { const extendedLabels = this.timelineData.currentGranularity.getExtendedLabel(); const granularityType = this.timelineData.currentGranularity.getType(); const yDiff: number = Timeline.DefaultYDiff; let yPos: number = 0; - if (timelineSettings.labels.show) { - if (timelineSettings.labels.displayAll || granularityType === GranularityType.year) { + if (settings.labels.show.value) { + if (settings.labels.displayAll.value || granularityType === GranularityType.year) { this.renderLabels( extendedLabels.yearLabels, this.yearLabelsSelection, @@ -1424,7 +1393,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - if (timelineSettings.labels.displayAll || granularityType === GranularityType.quarter) { + if (settings.labels.displayAll.value || granularityType === GranularityType.quarter) { this.renderLabels( extendedLabels.quarterLabels, this.quarterLabelsSelection, @@ -1435,7 +1404,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - if (timelineSettings.labels.displayAll || granularityType === GranularityType.month) { + if (settings.labels.displayAll.value || granularityType === GranularityType.month) { this.renderLabels( extendedLabels.monthLabels, this.monthLabelsSelection, @@ -1446,7 +1415,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - if (timelineSettings.labels.displayAll || granularityType === GranularityType.week) { + if (settings.labels.displayAll.value || granularityType === GranularityType.week) { this.renderLabels( extendedLabels.weekLabels, this.weekLabelsSelection, @@ -1457,7 +1426,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - if (timelineSettings.labels.displayAll || granularityType === GranularityType.day) { + if (settings.labels.displayAll.value || granularityType === GranularityType.day) { this.renderLabels( extendedLabels.dayLabels, this.dayLabelsSelection, @@ -1475,12 +1444,12 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } private calculateYOffset(index: number): number { - if (!this.settings.labels.show) { + if (!this.visualSettings.labels.show.value) { return this.timelineProperties.textYPosition; } return this.timelineProperties.textYPosition - + (1 + index) * pixelConverter.fromPointToPixel(this.settings.labels.textSize); + + (1 + index) * pixelConverter.fromPointToPixel(this.visualSettings.labels.textSize.value); } private renderLabels( @@ -1492,13 +1461,13 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual const labelTextSelection: D3Selection = labelsElement .selectAll(Timeline.TimelineSelectors.TextLabel.selectorName); - if (!this.settings.labels.show) { + if (!this.visualSettings.labels.show.value) { labelTextSelection.remove(); return; } const labelsGroupSelection: D3Selection = labelTextSelection.data(labels); - const fontSize: string = pixelConverter.fromPoint(this.settings.labels.textSize); + const fontSize: string = pixelConverter.fromPoint(this.visualSettings.labels.textSize.value); labelsGroupSelection .exit() @@ -1538,7 +1507,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } const labelFormattedTextOptions: dataLabelInterfaces.LabelFormattedTextOptions = { - fontSize: this.settings.labels.textSize, + fontSize: this.visualSettings.labels.textSize.value, label: label.text, maxWidth: this.timelineProperties.cellWidth * (isLast ? Timeline.CellWidthLastFactor @@ -1548,12 +1517,12 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual return dataLabelUtils.getLabelFormattedText(labelFormattedTextOptions); }) - .style("font-size", pixelConverter.fromPoint(this.settings.labels.textSize)) + .style("font-size", pixelConverter.fromPoint(this.visualSettings.labels.textSize.value)) .attr("x", (label: ITimelineLabel) => { return (label.id + Timeline.LabelIdOffset) * this.timelineProperties.cellWidth; }) .attr("y", yPosition) - .attr("fill", this.settings.labels.fontColor) + .attr("fill", this.visualSettings.labels.fontColor.value.value) .append("title") .text((label: ITimelineLabel) => label.title); } @@ -1610,7 +1579,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual cursorDataPoints[1].selectionIndex = dataPoint.datePeriod.index + dataPoint.datePeriod.fraction; } - this.fillCells(this.settings); + this.fillCells(this.visualSettings); this.renderCursors( timelineData, @@ -1618,7 +1587,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual timelineProperties.cellsYPosition, ); - this.renderTimeRangeText(timelineData, this.settings.rangeHeader); + this.renderTimeRangeText(timelineData, this.visualSettings.rangeHeader); this.setSelection(timelineData); this.toggleForceSelectionOptions(); @@ -1633,8 +1602,8 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } private toggleForceSelectionOptions(): void { - const isForceSelectionTurnedOn: boolean = this.settings.forceSelection.currentPeriod - || this.settings.forceSelection.latestAvailableDate; + const isForceSelectionTurnedOn: boolean = this.visualSettings.forceSelection.currentPeriod.value + || this.visualSettings.forceSelection.latestAvailableDate.value; if (isForceSelectionTurnedOn) { this.turnOffForceSelectionOptions(); diff --git a/src/timeLineSettingsModel.ts b/src/timeLineSettingsModel.ts new file mode 100644 index 0000000..a4b8cc7 --- /dev/null +++ b/src/timeLineSettingsModel.ts @@ -0,0 +1,474 @@ +import powerbi from "powerbi-visuals-api"; + +import {formattingSettings} from "powerbi-visuals-utils-formattingmodel"; +import {WeekStandard} from "./calendars/weekStandard"; +import {Month} from "./calendars/month"; +import Card = formattingSettings.SimpleCard; +import CompositeCard = formattingSettings.CompositeCard; +import Model = formattingSettings.Model; +import IEnumMember = powerbi.IEnumMember; +import ValidatorType = powerbi.visuals.ValidatorType; +import {Weekday} from "./calendars/weekday"; +import {GranularityType} from "./granularity/granularityType"; +import ILocalizationManager = powerbi.extensibility.ILocalizationManager; + +const weekStandardOptions: IEnumMember[] = [ + { value: WeekStandard.NotSet, displayName: "Visual_Week_Standard_None" }, + { value: WeekStandard.ISO8061, displayName: "Visual_Week_Standard_ISO8601" }, +]; + +const monthOptions: IEnumMember[] = [ + { value: Month.January, displayName: "Visual_Month_January" }, + { value: Month.February, displayName: "Visual_Month_February" }, + { value: Month.March, displayName: "Visual_Month_March" }, + { value: Month.April, displayName: "Visual_Month_April" }, + { value: Month.May, displayName: "Visual_Month_May" }, + { value: Month.June, displayName: "Visual_Month_June" }, + { value: Month.July, displayName: "Visual_Month_July" }, + { value: Month.August, displayName: "Visual_Month_August" }, + { value: Month.September, displayName: "Visual_Month_September" }, + { value: Month.October, displayName: "Visual_Month_October" }, + { value: Month.November, displayName: "Visual_Month_November" }, + { value: Month.December, displayName: "Visual_Month_December" }, +]; + +const weekdayOptions: IEnumMember[] = [ + { value: Weekday.Sunday, displayName: "Visual_Day_Sunday" }, + { value: Weekday.Monday, displayName: "Visual_Day_Monday" }, + { value: Weekday.Tuesday, displayName: "Visual_Day_Tuesday" }, + { value: Weekday.Wednesday, displayName: "Visual_Day_Wednesday" }, + { value: Weekday.Thursday, displayName: "Visual_Day_Thursday" }, + { value: Weekday.Friday, displayName: "Visual_Day_Friday" }, + { value: Weekday.Saturday, displayName: "Visual_Day_Saturday" }, +]; + +const granularityOptions: IEnumMember[] = [ + { value: GranularityType.year, displayName: "Visual_Granularity_Year" }, + { value: GranularityType.quarter, displayName: "Visual_Granularity_Quarter" }, + { value: GranularityType.month, displayName: "Visual_Granularity_Month" }, + { value: GranularityType.week, displayName: "Visual_Granularity_Week" }, + { value: GranularityType.day, displayName: "Visual_Granularity_Day" }, +]; + +class TextSizeDefaults { + public static readonly Default: number = 9; + public static readonly Min: number = 7; + public static readonly Max: number = 40; +} + +class CursorSettingsCard extends Card { + show = new formattingSettings.ToggleSwitch({ + name: "show", + displayName: "Show", + displayNameKey: "Visual_Show", + value: true, + }); + + color = new formattingSettings.ColorPicker({ + name: "color", + displayName: "Cursor color", + displayNameKey: "Visual_CursorColor", + value: { value: "#808080" }, + }); + + topLevelSlice = this.show; + name: string = "cursor"; + displayName: string = "Cursor"; + displayNameKey: string = "Visual_Cursor"; + slices = [this.color]; +} + +class ForceSelectionSettingsCard extends Card { + currentPeriod = new formattingSettings.ToggleSwitch({ + name: "currentPeriod", + displayName: "Current Period", + displayNameKey: "Visual_CurrentPeriod", + value: false, + }); + + latestAvailableDate = new formattingSettings.ToggleSwitch({ + name: "latestAvailableDate", + displayName: "Latest available period", + displayNameKey: "Visual_LatestAvailableDate", + value: false, + }); + + name: string = "forceSelection"; + displayName: string = "Force Selection"; + displayNameKey: string = "Visual_ForceSelection"; + slices = [this.currentPeriod, this.latestAvailableDate]; +} + +export class WeeksDeterminationStandardsSettingsCard extends Card { + weekStandard = new formattingSettings.ItemDropdown({ + name: "weekStandard", + displayName: "Standard", + displayNameKey: "Visual_Week_Standard", + items: weekStandardOptions, + value: weekStandardOptions[0], + }); + + name: string = "weeksDetermintaionStandards"; + displayName: string = "Weeks Determination Standards"; + displayNameKey: string = "Visual_Weeks_Determination_Standards"; + slices = [this.weekStandard]; +} + +export class CalendarSettingsCard extends Card { + public static readonly DefaultMonth: number = 0; + public static readonly DefaultDay: number = 1; + + month = new formattingSettings.ItemDropdown({ + name: "month", + displayName: "Month", + displayNameKey: "Visual_Month", + items: monthOptions, + value: monthOptions[0], + }); + + day = new formattingSettings.NumUpDown({ + name: "day", + displayName: "Day", + displayNameKey: "Visual_Day", + value: 1, + options: { + minValue: { value: 1, type: ValidatorType.Min }, + maxValue: { value: 31, type: ValidatorType.Max }, + } + }); + + name: string = "calendar"; + displayName: string = "Fiscal Year"; + displayNameKey: string = "Visual_FiscalYear"; + descriptionKey: string = "Visual_FiscalYear_Description"; + slices = [this.month, this.day]; +} + +class WeekDaySettingsCard extends Card { + daySelection = new formattingSettings.ToggleSwitch({ + name: "daySelection", + displayName: "Day Selection", + displayNameKey: "Visual_Day_Selection", + value: true, + }); + + day = new formattingSettings.ItemDropdown({ + name: "day", + displayName: "Day", + displayNameKey: "Visual_Day", + items: weekdayOptions, + value: weekdayOptions[0], + }); + + topLevelSlice = this.daySelection; + name: string = "weekDay"; + displayName: string = "First Day of Week"; + displayNameKey: string = "Visual_FirstDayOfWeek"; + descriptionKey: string = "Visual_FirstDayOfWeek_Description"; + slices = [this.day]; +} + +export class RangeHeaderSettingsCard extends Card { + show = new formattingSettings.ToggleSwitch({ + name: "show", + displayName: "Show", + displayNameKey: "Visual_Show", + value: true, + }); + + fontColor = new formattingSettings.ColorPicker({ + name: "fontColor", + displayName: "Font Color", + displayNameKey: "Visual_FontColor", + value: { value: "#777777" }, + }); + + textSize = new formattingSettings.NumUpDown({ + name: "textSize", + displayName: "Text Size", + displayNameKey: "Visual_TextSize", + value: TextSizeDefaults.Default, + options: { + minValue: { value: TextSizeDefaults.Min, type: ValidatorType.Min }, + maxValue: { value: TextSizeDefaults.Max, type: ValidatorType.Max }, + } + }); + + topLevelSlice = this.show; + name: string = "rangeHeader"; + displayName: string = "Range Header"; + displayNameKey: string = "Visual_RangeHeader"; + slices = [this.fontColor, this.textSize]; +} + +export class CellsSettingsCard extends Card { + public static readonly FillSelectedDefaultColor: string = "#ADD8E6"; + public static readonly FillUnselectedDefaultColor: string = "#FFFFFF"; + + fillSelected = new formattingSettings.ColorPicker({ + name: "fillSelected", + displayName: "Selected cell color", + displayNameKey: "Visual_Cell_SelectedColor", + value: { value: CellsSettingsCard.FillSelectedDefaultColor }, + }); + + strokeSelected = new formattingSettings.ColorPicker({ + name: "strokeSelected", + displayName: "Selected cell stroke color", + displayNameKey: "Visual_Cell_SelectedStrokeColor", + value: { value: "#333444" }, + }) + + fillUnselected = new formattingSettings.ColorPicker({ + name: "fillUnselected", + displayName: "Unselected cell color", + displayNameKey: "Visual_Cell_UnselectedColor", + value: { value: CellsSettingsCard.FillUnselectedDefaultColor }, + }); + + strokeUnselected = new formattingSettings.ColorPicker({ + name: "strokeUnselected", + displayName: "Unselected cell stroke color", + displayNameKey: "Visual_Cell_UnselectedStrokeColor", + value: { value: "#333444" }, + }); + + strokeWidth = new formattingSettings.NumUpDown({ + name: "strokeWidth", + displayName: "Stroke width", + displayNameKey: "Visual_Cell_StrokeWidth", + value: 1, + options: { + minValue: { value: 0, type: powerbi.visuals.ValidatorType.Min }, + maxValue: { value: 10, type: powerbi.visuals.ValidatorType.Max }, + } + }); + + gapWidth = new formattingSettings.NumUpDown({ + name: "gapWidth", + displayName: "Gap width", + displayNameKey: "Visual_Cell_GapWidth", + value: 0, + options: { + minValue: { value: 0, type: powerbi.visuals.ValidatorType.Min }, + maxValue: { value: 30, type: powerbi.visuals.ValidatorType.Max }, + } + }); + + enableManualSizing = new formattingSettings.ToggleSwitch({ + name: "enableManualSizing", + displayName: "Enable manual sizing", + displayNameKey: "Visual_Cell_EnableManualSizing", + value: false, + }); + + width = new formattingSettings.NumUpDown({ + name: "width", + displayName: "Cell width", + displayNameKey: "Visual_Cell_Width", + value: 40, + options: { + minValue: { value: 10, type: powerbi.visuals.ValidatorType.Min }, + }, + }); + + height = new formattingSettings.NumUpDown({ + name: "height", + displayName: "Cell height", + displayNameKey: "Visual_Cell_Height", + value: 60, + options: { + minValue: { value: 10, type: powerbi.visuals.ValidatorType.Min }, + }, + }); + + name: string = "cells"; + displayName: string = "Cells"; + displayNameKey: string = "Visual_Cells"; + slices = [ + this.fillSelected, + this.strokeSelected, + this.fillUnselected, + this.strokeUnselected, + this.strokeWidth, + this.gapWidth, + this.enableManualSizing, + this.width, + this.height, + ]; +} + +export class GranularitySettingsCard extends Card { + show = new formattingSettings.ToggleSwitch({ + name: "show", + displayName: "Show", + displayNameKey: "Visual_Show", + value: true, + }); + + scaleColor = new formattingSettings.ColorPicker({ + name: "scaleColor", + displayName: "Scale color", + displayNameKey: "Visual_ScaleColor", + value: { value: "#000000" }, + }); + + sliderColor = new formattingSettings.ColorPicker({ + name: "sliderColor", + displayName: "Slider color", + displayNameKey: "Visual_SliderColor", + value: { value: "#AAAAAA" }, + }); + + granularity = new formattingSettings.ItemDropdown({ + name: "granularity", + displayName: "Granularity", + displayNameKey: "Visual_Granularity", + items: granularityOptions, + value: granularityOptions[2], // month + }); + + granularityYearVisibility = new formattingSettings.ToggleSwitch({ + name: "granularityYearVisibility", + displayName: "Year visibility", + displayNameKey: "Visual_GranularityYearVisibility", + value: true, + }); + + granularityQuarterVisibility = new formattingSettings.ToggleSwitch({ + name: "granularityQuarterVisibility", + displayName: "Quarter visibility", + displayNameKey: "Visual_GranularityQuarterVisibility", + value: true, + }); + + granularityMonthVisibility = new formattingSettings.ToggleSwitch({ + name: "granularityMonthVisibility", + displayName: "Month visibility", + displayNameKey: "Visual_GranularityMonthVisibility", + value: true, + }); + + granularityWeekVisibility = new formattingSettings.ToggleSwitch({ + name: "granularityWeekVisibility", + displayName: "Week visibility", + displayNameKey: "Visual_GranularityWeekVisibility", + value: true, + }); + + granularityDayVisibility = new formattingSettings.ToggleSwitch({ + name: "granularityDayVisibility", + displayName: "Day visibility", + displayNameKey: "Visual_GranularityDayVisibility", + value: true, + }); + + topLevelSlice = this.show; + name: string = "granularity"; + displayName: string = "Granularity"; + displayNameKey: string = "Visual_Granularity"; + slices = [ + this.scaleColor, + this.sliderColor, + this.granularity, + this.granularityYearVisibility, + this.granularityQuarterVisibility, + this.granularityMonthVisibility, + this.granularityWeekVisibility, + this.granularityDayVisibility, + ]; +} + +export class LabelsSettingsCard extends Card { + show = new formattingSettings.ToggleSwitch({ + name: "show", + displayName: "Show", + displayNameKey: "Visual_Show", + value: true, + }); + + displayAll = new formattingSettings.ToggleSwitch({ + name: "displayAll", + displayName: "Display all", + displayNameKey: "Visual_DisplayAll", + value: true, + }); + + fontColor = new formattingSettings.ColorPicker({ + name: "fontColor", + displayName: "Font color", + displayNameKey: "Visual_FontColor", + value: { value: "#777777" }, + }); + + textSize = new formattingSettings.NumUpDown({ + name: "textSize", + displayName: "Text size", + displayNameKey: "Visual_TextSize", + value: TextSizeDefaults.Default, + options: { + minValue: { value: TextSizeDefaults.Min, type: ValidatorType.Min }, + maxValue: { value: 24, type: ValidatorType.Max }, + } + }); + + topLevelSlice = this.show; + name: string = "labels"; + displayName: string = "Labels"; + displayNameKey: string = "Visual_Labels"; + slices = [this.displayAll, this.fontColor, this.textSize]; +} + +class ScrollAutoAdjustmentSettingsCard extends Card { + show = new formattingSettings.ToggleSwitch({ + name: "show", + displayName: "Show", + displayNameKey: "Visual_Show", + value: false, + }); + + topLevelSlice = this.show; + name: string = "scrollAutoAdjustment"; + displayName: string = "Scroll position auto adjustment"; + displayNameKey: string = "Visual_ScrollAutoAdjustment"; +} + + +export class TimeLineSettingsModel extends Model { + cursor = new CursorSettingsCard(); + forceSelection = new ForceSelectionSettingsCard(); + weekDay = new WeekDaySettingsCard(); + weeksDeterminationStandards = new WeeksDeterminationStandardsSettingsCard(); + calendar = new CalendarSettingsCard(); + rangeHeader = new RangeHeaderSettingsCard(); + cells = new CellsSettingsCard(); + granularity = new GranularitySettingsCard(); + labels = new LabelsSettingsCard(); + scrollAutoAdjustment = new ScrollAutoAdjustmentSettingsCard(); + + cards: Array = [ + this.cursor, + this.forceSelection, + this.weeksDeterminationStandards, + this.calendar, + this.weekDay, + this.rangeHeader, + this.cells, + this.granularity, + this.labels, + this.scrollAutoAdjustment, + ]; + + public setLocalizedOptions(localizationManager: ILocalizationManager) { + this.setLocalizedDisplayName(weekStandardOptions, localizationManager); + this.setLocalizedDisplayName(monthOptions, localizationManager); + this.setLocalizedDisplayName(weekdayOptions, localizationManager); + this.setLocalizedDisplayName(granularityOptions, localizationManager); + } + + private setLocalizedDisplayName(options: IEnumMember[], localizationManager: ILocalizationManager) { + options.forEach(option => { + option.displayName = localizationManager.getDisplayName(option.displayName.toString()) + }); + } +} diff --git a/src/utils.ts b/src/utils.ts index 4fc05ae..2b5cfc5 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -37,7 +37,7 @@ import { import { IGranularityName } from "./granularity/granularityName"; import { GranularityNames } from "./granularity/granularityNames"; import { GranularityType } from "./granularity/granularityType"; -import { CellsSettings } from "./settings/cellsSettings"; +import {CellsSettingsCard} from "./timeLineSettingsModel"; export class Utils { public static DefaultCellColor: string = "transparent"; @@ -222,14 +222,14 @@ export class Utils { public static GET_CELL_COLOR( dataPoint: ITimelineDataPoint, timelineData: ITimelineData, - cellSettings: CellsSettings): string { + cellSettings: CellsSettingsCard): string { const inSelectedPeriods: boolean = dataPoint.datePeriod.startDate >= Utils.GET_START_SELECTION_DATE(timelineData) && dataPoint.datePeriod.endDate <= Utils.GET_END_SELECTION_DATE(timelineData); return inSelectedPeriods - ? cellSettings.fillSelected - : (cellSettings.fillUnselected || Utils.DefaultCellColor); + ? cellSettings.fillSelected.value.value + : (cellSettings.fillUnselected.value.value || Utils.DefaultCellColor); } public static IS_GRANULE_SELECTED(dataPoint: ITimelineDataPoint, timelineData: ITimelineData): boolean { @@ -259,7 +259,7 @@ export class Utils { /** * Returns the name of the granularity type - * @param granularity The type of granularity + * @param granularityType The type of granularity */ public static GET_GRANULARITY_NAME_KEY(granularityType: GranularityType): string { const index: number = Utils.FIND_INDEX(GranularityNames, (granularity: IGranularityName) => { diff --git a/stringResources/ar-SA/resources.resjson b/stringResources/ar-SA/resources.resjson index 259989f..4535936 100644 --- a/stringResources/ar-SA/resources.resjson +++ b/stringResources/ar-SA/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "وقت", "Visual_General": "عام", + "Visual_Short_Description": "محدد نطاق التاريخ الرسومي المطلوب استخدامه لتصفية التواريخ", + "Visual_Long_Description": "مقسم طريقة عرض الخط الزمني هو محدد نطاق تاريخ رسومي يتم استخدامه كمكون تصفية في Power BI. يجعل هذا من تصفية البيانات حسب بُعد التاريخ أمرًا سهلاً وممتعًا.\nكم مرة يتعين عليك فيها تصفية بياناتك لنطاق تاريخ أو على مستوى أعلى مثل شهر أو ربع سنة؟ في كل مرة. أليس كذلك؟ التصفية أمر مرهق عندما يتعين عليك النقر عبر عدد كبير من قيم التاريخ لتحديد النطاق الذي تريد. ويعتبر تغيير نقاوة عامل التصفية من الشهور وأرباع السنة والسنوات بسرعة أمرًا شاقًا جدًا. حسنًا، بل كانت أمرًا شاقًا جدًا.\nسيعمل مقسم طريقة عرض الخط الزمني على جعل هذه التجربة سلسة. بفضل عنصر التحكم في شريط التمرير البسيط للتواريخ، كل ما عليك تنفيذه هو النقر والسحب إلى النطاق الذي تريد. يمكنك أيضًا التبديل إلى طريقة عرض السنة أو ربع السنة أو الشهر لتحديد نطاقات حتى على مستوى أعلى من التواريخ.\nيمكنك ببساطة النقر فوق مقسم طريقة العرض لتحديد قيمة واحدة أو النقر فوق الحافة والسحب للنطاق الذي تريد.\nيمكنك أيضًا تغيير الخلفية ولون التحديد، هذا بالإضافة إلى عدد من خيارات التنسيق الأخرى للتحكم في المظهر والشكل. يعمل الضغط على SHIFT+Click على تحديد نطاق.", "Visual_FiscalYearStart": "بداية السنة المالية", + "Visual_FiscalYear": "السنة المالية", + "Visual_FiscalYear_Description": "هذا الخيار ليس له معنى إذا تم اختيار معيار ISO 8601", "Visual_Month": "شهر", "Visual_Month_January": "يناير", "Visual_Month_February": "فبراير", @@ -32,6 +36,13 @@ "Visual_Cells": "الخلايا", "Visual_Cell_SelectedColor": "لون الخلية المحددة", "Visual_Cell_UnselectedColor": "لون الخلية غير المحددة", + "Visual_Cell_SelectedStrokeColor": "لون حد الخلية المحدد", + "Visual_Cell_UnselectedStrokeColor": "لون حد الخلية غير محدد", + "Visual_Cell_EnableManualSizing": "تمكين التحجيم اليدوي", + "Visual_Cell_Width": "عرض الخلية", + "Visual_Cell_Height": "ارتفاع الخلية", + "Visual_Cell_StrokeWidth": "عرض الكتابة", + "Visual_Cell_GapWidth": "عرض التباعد", "Visual_Granularity": "النقاوة", "Visual_ScaleColor": "لون المقياس", "Visual_SliderColor": "لون شريط التمرير", @@ -43,7 +54,10 @@ "Visual_Labels": "تسميات", "Visual_ScaleSizeAdjustment": "ضبط حجم المقياس تلقائيًا", "Visual_FirstDayOfWeek": "أول يوم في الأسبوع", + "Visual_FirstDayOfWeek_Description": "هذا الخيار ليس له معنى إذا تم اختيار معيار ISO 8601", "Visual_DisplayAll": "عرض الكل", + "Visual_Cursor": "مؤشر", + "Visual_CursorColor": "لون المؤشر", "Visual_ForceSelection": "فرض التحديد", "Visual_CurrentPeriod": "الفترة الحالية", "Visual_LatestAvailableDate": "آخر فترة متوفرة", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "رؤية الشهر", "Visual_GranularityWeekVisibility": "رؤية الأسبوع", "Visual_GranularityDayVisibility": "رؤية اليوم", - "Timeline_Short_Description": "محدد نطاق التاريخ الرسومي المطلوب استخدامه لتصفية التواريخ", - "Timeline_Long_Description": "مقسم طريقة عرض الخط الزمني هو محدد نطاق تاريخ رسومي يتم استخدامه كمكون تصفية في Power BI. يجعل هذا من تصفية البيانات حسب بُعد التاريخ أمرًا سهلاً وممتعًا.\nكم مرة يتعين عليك فيها تصفية بياناتك لنطاق تاريخ أو على مستوى أعلى مثل شهر أو ربع سنة؟ في كل مرة. أليس كذلك؟ التصفية أمر مرهق عندما يتعين عليك النقر عبر عدد كبير من قيم التاريخ لتحديد النطاق الذي تريد. ويعتبر تغيير نقاوة عامل التصفية من الشهور وأرباع السنة والسنوات بسرعة أمرًا شاقًا جدًا. حسنًا، بل كانت أمرًا شاقًا جدًا.\nسيعمل مقسم طريقة عرض الخط الزمني على جعل هذه التجربة سلسة. بفضل عنصر التحكم في شريط التمرير البسيط للتواريخ، كل ما عليك تنفيذه هو النقر والسحب إلى النطاق الذي تريد. يمكنك أيضًا التبديل إلى طريقة عرض السنة أو ربع السنة أو الشهر لتحديد نطاقات حتى على مستوى أعلى من التواريخ.\nيمكنك ببساطة النقر فوق مقسم طريقة العرض لتحديد قيمة واحدة أو النقر فوق الحافة والسحب للنطاق الذي تريد.\nيمكنك أيضًا تغيير الخلفية ولون التحديد، هذا بالإضافة إلى عدد من خيارات التنسيق الأخرى للتحكم في المظهر والشكل. يعمل الضغط على SHIFT+Click على تحديد نطاق." + "Visual_Weeks_Determination_Standards": "معايير تحديد الأسابيع", + "Visual_Week_Standard": "معيار", + "Visual_Week_Standard_None": "-- بلا --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/bg-BG/resources.resjson b/stringResources/bg-BG/resources.resjson index 533892e..c81ca0c 100644 --- a/stringResources/bg-BG/resources.resjson +++ b/stringResources/bg-BG/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Час", "Visual_General": "Общи", + "Visual_Short_Description": "Графичен селектор на диапазон от дати за филтриране по дати", + "Visual_Long_Description": "Сегментаторът на времева линия е графичен селектор на диапазон от дати, използван като филтриращ компонент в Power BI. Това прави филтрирането на данните по измерението „дата“ лесно и забавно.\nКолко често ви се налага да филтрирате данните си по диапазон от дати или на по-високо ниво, като например месец или тримесечие? Всеки път, нали така? Филтрирането е истинско главоболие, когато трябва да прехвърляте с щракване голям брой стойности за дата, за да изберете желания диапазон. Промяната на грануларността на филтъра от месеци, тримесечия и години в движение е много досадна. Е, вече може да забравите за тази досада.\nСегментаторът на времева линия ще направи тази задача лесна като детска игра. С тази проста контрола с плъзгач за дати всичко, което трябва да направите, е просто да щракнете и плъзнете до желания диапазон. Можете също така да преминете към изглед с година, тримесечие или месец, за да изберете диапазони дори и на по-високо ниво от датите.\nМожете просто да щракнете върху сегментатора, за да изберете единична стойност, или да щракнете в края и да я плъзнете до желания диапазон.\nМожете също да променяте цвета на фона и цвета при избор, както и голям брой други опции за форматиране, за да персонализирате изгледа и усещането. Комбинацията „SHIFT + щракване“ също може да се използва за избор на диапазон.", "Visual_FiscalYearStart": "Начало на фискална година", + "Visual_FiscalYear": "Финансова година", + "Visual_FiscalYear_Description": "Тази опция няма смисъл, ако е избран стандарта ISO 8601", "Visual_Month": "Месец", "Visual_Month_January": "Януари", "Visual_Month_February": "Февруари", @@ -32,6 +36,13 @@ "Visual_Cells": "Клетки", "Visual_Cell_SelectedColor": "Цвят на избрана клетка", "Visual_Cell_UnselectedColor": "Цвят на неизбрана клетка", + "Visual_Cell_SelectedStrokeColor": "Избран цвят за зачертаване на клетка", + "Visual_Cell_UnselectedStrokeColor": "Цвят за зачертаване на клетка с премахнат избор", + "Visual_Cell_EnableManualSizing": "Разрешаване на ръчно оразмеряване", + "Visual_Cell_Width": "Ширина на клетката", + "Visual_Cell_Height": "Височина на клетката", + "Visual_Cell_StrokeWidth": "Ширина на границата", + "Visual_Cell_GapWidth": "Ширина на междината", "Visual_Granularity": "Грануларност", "Visual_ScaleColor": "Цвят на скалата", "Visual_SliderColor": "Цвят на плъзгача", @@ -43,7 +54,10 @@ "Visual_Labels": "Етикети", "Visual_ScaleSizeAdjustment": "Автонастройка на размера на скалата", "Visual_FirstDayOfWeek": "Първи ден от седмицата", + "Visual_FirstDayOfWeek_Description": "Тази опция няма смисъл, ако е избран стандарта ISO 8601", "Visual_DisplayAll": "Показване на всички", + "Visual_Cursor": "Курсор", + "Visual_CursorColor": "Цвят на курсор", "Visual_ForceSelection": "Принудително налагане на селекция", "Visual_CurrentPeriod": "Текущ период", "Visual_LatestAvailableDate": "Последен наличен период", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Възможност за преглед на месеца", "Visual_GranularityWeekVisibility": "Възможност за преглед на седмицата", "Visual_GranularityDayVisibility": "Възможност за преглед на деня", - "Timeline_Short_Description": "Графичен селектор на диапазон от дати за филтриране по дати", - "Timeline_Long_Description": "Сегментаторът на времева линия е графичен селектор на диапазон от дати, използван като филтриращ компонент в Power BI. Това прави филтрирането на данните по измерението „дата“ лесно и забавно.\nКолко често ви се налага да филтрирате данните си по диапазон от дати или на по-високо ниво, като например месец или тримесечие? Всеки път, нали така? Филтрирането е истинско главоболие, когато трябва да прехвърляте с щракване голям брой стойности за дата, за да изберете желания диапазон. Промяната на грануларността на филтъра от месеци, тримесечия и години в движение е много досадна. Е, вече може да забравите за тази досада.\nСегментаторът на времева линия ще направи тази задача лесна като детска игра. С тази проста контрола с плъзгач за дати всичко, което трябва да направите, е просто да щракнете и плъзнете до желания диапазон. Можете също така да преминете към изглед с година, тримесечие или месец, за да изберете диапазони дори и на по-високо ниво от датите.\nМожете просто да щракнете върху сегментатора, за да изберете единична стойност, или да щракнете в края и да я плъзнете до желания диапазон.\nМожете също да променяте цвета на фона и цвета при избор, както и голям брой други опции за форматиране, за да персонализирате изгледа и усещането. Комбинацията „SHIFT + щракване“ също може да се използва за избор на диапазон." + "Visual_Weeks_Determination_Standards": "Стандарти за определяне на седмици", + "Visual_Week_Standard": "Стандартен", + "Visual_Week_Standard_None": "-- няма --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/ca-ES/resources.resjson b/stringResources/ca-ES/resources.resjson index bde0c7f..68df170 100644 --- a/stringResources/ca-ES/resources.resjson +++ b/stringResources/ca-ES/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Hora", "Visual_General": "General", + "Visual_Short_Description": "Selector gràfic del rang de dates per filtrar les dates.", + "Visual_Long_Description": "L’afinador Cronologia és un selector d’intervals gràfics de dades que es fa servir com a component de filtratge al Power BI. Això fa que el filtratge de dades per la dimensió de dates sigui fàcil i divertit.\nAmb quina freqüència heu de filtrar les dades per un interval de dates o un nivell encara més alt, com en el cas dels mesos o els trimestres? Sempre, oi? Quan heu de fer clic en grans quantitats de valors de dates per seleccionar l’interval adequat, el filtratge és una tasca esgotadora. De la mateixa manera que el fet de canviar la granularitat del filtre per fer servir mesos, trimestres i anys cada vegada també és molt feixuc. Bé, era molt feixuc.\nL’afinador Cronologia fa que aquesta experiència sigui bufar i fer ampolles. Gràcies a aquest senzill afinador de les dates, només heu de fer clic i arrossegar els elements a l’interval que vulgueu. També podeu canviar a la visualització anual, trimestral o mensual per seleccionar intervals en un nivell superior a les dates.\nNomés heu de fer clic a l’afinador per seleccionar un únic valor, o bé a la vora i arrossegar-la fins a l’interval que vulgueu.\nTambé podeu canviar el color de fons i de selecció, i moltes altres opcions de format per aconseguir l’aspecte que vulgueu. La combinació de Maj i clic també permet seleccionar un interval.", "Visual_FiscalYearStart": "Inici de l'any fiscal", + "Visual_FiscalYear": "Any fiscal", + "Visual_FiscalYear_Description": "Aquesta opció no té cap sentit si s'ha triat l'estàndard ISO 8601", "Visual_Month": "Mes", "Visual_Month_January": "Gener", "Visual_Month_February": "Febrer", @@ -32,6 +36,13 @@ "Visual_Cells": "Cel·les", "Visual_Cell_SelectedColor": "Color de la cel·la seleccionada", "Visual_Cell_UnselectedColor": "Color de la cel·la no seleccionada", + "Visual_Cell_SelectedStrokeColor": "Color de traç de la cel·la seleccionat", + "Visual_Cell_UnselectedStrokeColor": "Color de traç de la cel·la no seleccionat", + "Visual_Cell_EnableManualSizing": "Habilita el dimensionament manual", + "Visual_Cell_Width": "Amplada de la cel·la", + "Visual_Cell_Height": "Alçada de la cel·la", + "Visual_Cell_StrokeWidth": "Amplada del traç", + "Visual_Cell_GapWidth": "Amplada de l'interval", "Visual_Granularity": "Granularitat", "Visual_ScaleColor": "Color de l'escala", "Visual_SliderColor": "Color del control lliscant", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiquetes", "Visual_ScaleSizeAdjustment": "Ajust automàtic de la mida de l'escala", "Visual_FirstDayOfWeek": "Primer dia de la setmana", + "Visual_FirstDayOfWeek_Description": "Aquesta opció no té cap sentit si s'ha triat l'estàndard ISO 8601", "Visual_DisplayAll": "Mostra-ho tot", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Color del cursor", "Visual_ForceSelection": "Força la selecció", "Visual_CurrentPeriod": "Període actual", "Visual_LatestAvailableDate": "Últim període disponible", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Visualització per mes", "Visual_GranularityWeekVisibility": "Visualització per setmana", "Visual_GranularityDayVisibility": "Visualització per dia", - "Timeline_Short_Description": "Selector gràfic del rang de dates per filtrar les dates.", - "Timeline_Long_Description": "L’afinador Cronologia és un selector d’intervals gràfics de dades que es fa servir com a component de filtratge al Power BI. Això fa que el filtratge de dades per la dimensió de dates sigui fàcil i divertit.\nAmb quina freqüència heu de filtrar les dades per un interval de dates o un nivell encara més alt, com en el cas dels mesos o els trimestres? Sempre, oi? Quan heu de fer clic en grans quantitats de valors de dates per seleccionar l’interval adequat, el filtratge és una tasca esgotadora. De la mateixa manera que el fet de canviar la granularitat del filtre per fer servir mesos, trimestres i anys cada vegada també és molt feixuc. Bé, era molt feixuc.\nL’afinador Cronologia fa que aquesta experiència sigui bufar i fer ampolles. Gràcies a aquest senzill afinador de les dates, només heu de fer clic i arrossegar els elements a l’interval que vulgueu. També podeu canviar a la visualització anual, trimestral o mensual per seleccionar intervals en un nivell superior a les dates.\nNomés heu de fer clic a l’afinador per seleccionar un únic valor, o bé a la vora i arrossegar-la fins a l’interval que vulgueu.\nTambé podeu canviar el color de fons i de selecció, i moltes altres opcions de format per aconseguir l’aspecte que vulgueu. La combinació de Maj i clic també permet seleccionar un interval." + "Visual_Weeks_Determination_Standards": "Estàndards de determinació de setmanes", + "Visual_Week_Standard": "Estàndard", + "Visual_Week_Standard_None": "-- cap --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/cs-CZ/resources.resjson b/stringResources/cs-CZ/resources.resjson index e55887a..100e162 100644 --- a/stringResources/cs-CZ/resources.resjson +++ b/stringResources/cs-CZ/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Čas", "Visual_General": "Obecné", + "Visual_Short_Description": "Grafický selektor rozsahu kalendářních dat k použití za účelem filtrování dat", + "Visual_Long_Description": "Průřez časové osy je grafický selektor rozsahu kalendářních dat, který se v Power BI používá jako komponenta filtrování. Díky němu je filtrování dat podle jejich dimenze snadné a zábavné.\nJak často musíte filtrovat data za určité časové období nebo na vyšší úrovni, například měsíc nebo čtvrtletí? Pořád, že ano? Filtrování je náročné, zvlášť když musíte procházet velké množství hodnot dat, abyste vybrali rozsah, který chcete. Průběžné měnění podrobností filtru z měsíců, čtvrtletí a roků je velmi únavné. Vlastně, bývalo to únavné.\nPrůřez časové osy z toho udělá procházku růžovou zahradou. S tímto posuvným ovládacím prvkem pro výběr dat vám stačí kliknout a přetáhnutím označit rozsah, který chcete použít. Můžete také přepnout na zobrazení roku, čtvrtletí nebo měsíce, a vybrat tak rozsahy i na vyšší úrovni, než jsou kalendářní data.\nStačí kliknutím na průřez vybrat jednu hodnotu nebo kliknout na okraj a přetažením označit rozsah, který chcete použít.\nMůžete také změnit barvu pozadí a výběru a k tomu můžete ovládat vzhled pomocí bezpočtu dalších možností formátování. Pro výběr rozsahu také funguje stisknutí klávesy Shift a kliknutí.", "Visual_FiscalYearStart": "Začátek fiskálního roku", + "Visual_FiscalYear": "Fiskální rok", + "Visual_FiscalYear_Description": "Tato možnost nemá žádný smysl, pokud byla vybrána norma ISO 8601.", "Visual_Month": "Měsíc", "Visual_Month_January": "Leden", "Visual_Month_February": "Únor", @@ -32,6 +36,13 @@ "Visual_Cells": "Buňky", "Visual_Cell_SelectedColor": "Barva vybrané buňky", "Visual_Cell_UnselectedColor": "Barva nevybrané buňky", + "Visual_Cell_SelectedStrokeColor": "Barva tahu vybrané buňky", + "Visual_Cell_UnselectedStrokeColor": "Barva tahu nevybrané buňky", + "Visual_Cell_EnableManualSizing": "Povolit ruční změnu velikosti", + "Visual_Cell_Width": "Šířka buňky", + "Visual_Cell_Height": "Výška buňky", + "Visual_Cell_StrokeWidth": "Šířka tahu", + "Visual_Cell_GapWidth": "Šířka mezery", "Visual_Granularity": "Úroveň podrobností", "Visual_ScaleColor": "Barva měřítka", "Visual_SliderColor": "Barva jezdce", @@ -43,7 +54,10 @@ "Visual_Labels": "Popisky", "Visual_ScaleSizeAdjustment": "Automatická úprava měřítka velikosti", "Visual_FirstDayOfWeek": "První den v týdnu", + "Visual_FirstDayOfWeek_Description": "Tato možnost nemá žádný smysl, pokud byla vybrána norma ISO 8601.", "Visual_DisplayAll": "Zobrazit vše", + "Visual_Cursor": "Kurzor", + "Visual_CursorColor": "Barva kurzoru", "Visual_ForceSelection": "Vynutit výběr", "Visual_CurrentPeriod": "Aktuální období", "Visual_LatestAvailableDate": "Nejnovější dostupné období", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Viditelnost měsíce", "Visual_GranularityWeekVisibility": "Viditelnost týdne", "Visual_GranularityDayVisibility": "Viditelnost dne", - "Timeline_Short_Description": "Grafický selektor rozsahu kalendářních dat k použití za účelem filtrování dat", - "Timeline_Long_Description": "Průřez časové osy je grafický selektor rozsahu kalendářních dat, který se v Power BI používá jako komponenta filtrování. Díky němu je filtrování dat podle jejich dimenze snadné a zábavné.\nJak často musíte filtrovat data za určité časové období nebo na vyšší úrovni, například měsíc nebo čtvrtletí? Pořád, že ano? Filtrování je náročné, zvlášť když musíte procházet velké množství hodnot dat, abyste vybrali rozsah, který chcete. Průběžné měnění podrobností filtru z měsíců, čtvrtletí a roků je velmi únavné. Vlastně, bývalo to únavné.\nPrůřez časové osy z toho udělá procházku růžovou zahradou. S tímto posuvným ovládacím prvkem pro výběr dat vám stačí kliknout a přetáhnutím označit rozsah, který chcete použít. Můžete také přepnout na zobrazení roku, čtvrtletí nebo měsíce, a vybrat tak rozsahy i na vyšší úrovni, než jsou kalendářní data.\nStačí kliknutím na průřez vybrat jednu hodnotu nebo kliknout na okraj a přetažením označit rozsah, který chcete použít.\nMůžete také změnit barvu pozadí a výběru a k tomu můžete ovládat vzhled pomocí bezpočtu dalších možností formátování. Pro výběr rozsahu také funguje stisknutí klávesy Shift a kliknutí." + "Visual_Weeks_Determination_Standards": "Standardy určení týdnů", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "– žádné –", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/da-DK/resources.resjson b/stringResources/da-DK/resources.resjson index 7279b30..16846ca 100644 --- a/stringResources/da-DK/resources.resjson +++ b/stringResources/da-DK/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Tid", "Visual_General": "Generelt", + "Visual_Short_Description": "Grafisk datointervalvælger til filtrering af datoer", + "Visual_Long_Description": "Tidslinje udsnitsværktøjet er en grafisk datointervalvælger, der bruges som en filtreringskomponent i Power BI. Dette gør datafiltrering efter dato let og sjovt.\nHvor tit er du nødt til at filtrere dataene i et datoområde eller på et højere niveau som f.eks måned eller kvartal? Hver eneste gang. Ikke? Filtrering er irriterende, når du skal klikke dig gennem stort antal datoværdier til at vælge det ønskede område. At skulle ændre filtergranularitet fra måneder, kvartaler og år i farten er ekstremt kedeligt. Eller rettere, det var ekstremt kedeligt.\nTidslinje udsnitsværktøjet gør denne oplevelse hurtig og fornøjelig. Med denne simple skyderknap til datoer er det eneste, du skal gøre, blot at klikke og trække til det område, du ønsker. Du kan også skifte til visning af et år, kvartal eller måned ved at vælge intervaller, selv på et højere niveau end datoer.\nDu kan blot klikke på udsnitsværktøjet for at vælge en enkelt værdi eller trække det til det område, du ønsker.\nDu kan også ændre baggrunden og farven på det markerede og et antal andre indstillinger for formatering til at styre udseenden og oplevelsen. Med Skift + klik kan du også markere et område.", "Visual_FiscalYearStart": "Begyndelsen af regnskabsår", + "Visual_FiscalYear": "Regnskabsår", + "Visual_FiscalYear_Description": "Denne indstilling giver ingen mening, hvis ISO 8601-standarden blev valgt", "Visual_Month": "Måned", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -32,6 +36,13 @@ "Visual_Cells": "Celler", "Visual_Cell_SelectedColor": "Farve på markeret celle", "Visual_Cell_UnselectedColor": "Farve på ikke-markeret celle", + "Visual_Cell_SelectedStrokeColor": "Markeret cellestrøgsfarve", + "Visual_Cell_UnselectedStrokeColor": "Ikke-markeret cellestrøgsfarve", + "Visual_Cell_EnableManualSizing": "Aktivér manuel tilpasning af størrelse", + "Visual_Cell_Width": "Cellebredde", + "Visual_Cell_Height": "Cellehøjde", + "Visual_Cell_StrokeWidth": "Penselstrøgsbredde", + "Visual_Cell_GapWidth": "Mellemrumsbredde", "Visual_Granularity": "Kornethed", "Visual_ScaleColor": "Skalafarve", "Visual_SliderColor": "Skyderfarve", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiketter", "Visual_ScaleSizeAdjustment": "Automatisk justering af skalastørrelse", "Visual_FirstDayOfWeek": "Første dag i ugen", + "Visual_FirstDayOfWeek_Description": "Denne indstilling giver ingen mening, hvis ISO 8601-standarden blev valgt", "Visual_DisplayAll": "Vis alle", + "Visual_Cursor": "Markør", + "Visual_CursorColor": "Markørfarve", "Visual_ForceSelection": "Gennemtving valg", "Visual_CurrentPeriod": "Aktuel periode", "Visual_LatestAvailableDate": "Seneste tilgængelige periode", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Måned synlighed", "Visual_GranularityWeekVisibility": "Uge synlighed", "Visual_GranularityDayVisibility": "Synlighed i dagslys", - "Timeline_Short_Description": "Grafisk datointervalvælger til filtrering af datoer", - "Timeline_Long_Description": "Tidslinje udsnitsværktøjet er en grafisk datointervalvælger, der bruges som en filtreringskomponent i Power BI. Dette gør datafiltrering efter dato let og sjovt.\nHvor tit er du nødt til at filtrere dataene i et datoområde eller på et højere niveau som f.eks måned eller kvartal? Hver eneste gang. Ikke? Filtrering er irriterende, når du skal klikke dig gennem stort antal datoværdier til at vælge det ønskede område. At skulle ændre filtergranularitet fra måneder, kvartaler og år i farten er ekstremt kedeligt. Eller rettere, det var ekstremt kedeligt.\nTidslinje udsnitsværktøjet gør denne oplevelse hurtig og fornøjelig. Med denne simple skyderknap til datoer er det eneste, du skal gøre, blot at klikke og trække til det område, du ønsker. Du kan også skifte til visning af et år, kvartal eller måned ved at vælge intervaller, selv på et højere niveau end datoer.\nDu kan blot klikke på udsnitsværktøjet for at vælge en enkelt værdi eller trække det til det område, du ønsker.\nDu kan også ændre baggrunden og farven på det markerede og et antal andre indstillinger for formatering til at styre udseenden og oplevelsen. Med Skift + klik kan du også markere et område." + "Visual_Weeks_Determination_Standards": "Standarder for bestemmelse af uger", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "--Ingen--", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/de-DE/resources.resjson b/stringResources/de-DE/resources.resjson index 5b6ad1f..1fdf217 100644 --- a/stringResources/de-DE/resources.resjson +++ b/stringResources/de-DE/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Zeitraum", "Visual_General": "Allgemein", + "Visual_Short_Description": "Grafische Auswahl von Datumsbereichen zum Filtern von Daten.", + "Visual_Long_Description": "Der Zeitachsenslicer dient zur grafischen Auswahl von Datumsbereichen und wird in Power BI als Filterkomponente verwendet. So lassen sich Datumswerte ganz leicht anhand von Datumsdimensionen filtern.\nWie oft müssen Sie Ihre Daten nach Datumsbereichen oder auf höherer Ebene z. B. nach Monat oder Quartal filtern? Jedes einzelne Mal. Richtig? Filtern ist sehr mühsam, wenn Sie sich durch große Mengen an Datumswerten klicken müssen, um den gewünschten Bereich auszuwählen. Das Ändern der Filtergranularität von Monaten zu Quartalen oder Jahren ist ebenfalls eine mühselige Angelegenheit. Zumindest war es das einmal.\nDer Zeitachsenslicer bietet einen einfachen Schieberegler, mit dem diese Aufgabe im Handumdrehen erledigt ist: Sie müssen einfach nur klicken und den Regler zu dem Bereich ziehen, den Sie anzeigen möchten. Sie können auch zu den Ansichten für Jahr, Quartal oder Monat wechseln, um größere Datumsbereiche auszuwählen.\nSie können einfach auf den Slicer klicken, um einen einzelnen Wert auszuwählen, oder Sie klicken auf den Rand und ziehen den Slicer auf den gewünschten Bereich.\nSie können außerdem Hintergrund- und Auswahlfarbe ändern sowie eine Reihe weiterer Formatierungsoptionen festlegen, um das Erscheinungsbild Ihrer Datendarstellung zu steuern. Zur Auswahl eines Bereichs können Sie auch bei gedrückter UMSCHALTTASTE klicken.", "Visual_FiscalYearStart": "Beginn des Geschäftsjahrs", + "Visual_FiscalYear": "Geschäftsjahr", + "Visual_FiscalYear_Description": "Diese Option hat keinen Sinn, wenn der ISO 8601-Standard ausgewählt wurde.", "Visual_Month": "Monat", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -32,6 +36,13 @@ "Visual_Cells": "Zellen", "Visual_Cell_SelectedColor": "Farbe für ausgewählte Zelle", "Visual_Cell_UnselectedColor": "Farbe für nicht ausgewählte Zellen", + "Visual_Cell_SelectedStrokeColor": "Strichfarbe für ausgewählte Zellen", + "Visual_Cell_UnselectedStrokeColor": "Strichfarbe für nicht ausgewählte Zellen", + "Visual_Cell_EnableManualSizing": "Manuelle Größenanpassung aktivieren", + "Visual_Cell_Width": "Zellenbreite", + "Visual_Cell_Height": "Zellenhöhe", + "Visual_Cell_StrokeWidth": "Strichstärke", + "Visual_Cell_GapWidth": "Abstandsbreite", "Visual_Granularity": "Granularität", "Visual_ScaleColor": "Farbe für Skala", "Visual_SliderColor": "Farbe für Schieberegler", @@ -43,7 +54,10 @@ "Visual_Labels": "Bezeichnungen", "Visual_ScaleSizeAdjustment": "Automatische Anpassung der Skalierungsgröße", "Visual_FirstDayOfWeek": "Erster Tag der Woche", + "Visual_FirstDayOfWeek_Description": "Diese Option hat keinen Sinn, wenn der ISO 8601-Standard ausgewählt wurde.", "Visual_DisplayAll": "Alle anzeigen", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Cursorfarbe", "Visual_ForceSelection": "Auswahl erzwingen", "Visual_CurrentPeriod": "Aktueller Zeitraum", "Visual_LatestAvailableDate": "Neuester verfügbarer Zeitraum", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Ansichtszeitraum: Monat", "Visual_GranularityWeekVisibility": "Ansichtszeitraum: Woche", "Visual_GranularityDayVisibility": "Ansichtszeitraum: Tag", - "Timeline_Short_Description": "Grafische Auswahl von Datumsbereichen zum Filtern von Daten.", - "Timeline_Long_Description": "Der Zeitachsen-Slicer dient zur grafischen Auswahl von Datumsbereichen und wird in Power BI als Filterkomponente verwendet. So lassen sich Datumswerte ganz leicht anhand von Datumsdimensionen filtern.\nWie oft müssen Sie Ihre Daten nach Datumsbereichen oder auf höherer Ebene z. B. nach Monat oder Quartal filtern? Jedes einzelne Mal. Richtig? Filtern ist sehr mühsam, wenn Sie sich durch große Mengen an Datumswerten klicken müssen, um den gewünschten Bereich auszuwählen. Das Ändern der Filtergranularität von Monaten zu Quartalen oder Jahren ist ebenfalls eine mühselige Angelegenheit. Zumindest war es das einmal.\nDer Zeitachsen-Slicer bietet einen einfachen Schieberegler, mit dem diese Aufgabe im Handumdrehen erledigt ist: Sie müssen einfach nur klicken und den Regler zu dem Bereich ziehen, den Sie anzeigen möchten. Sie können auch zu den Ansichten für Jahr, Quartal oder Monat wechseln, um größere Datumsbereiche auszuwählen.\nSie können einfach auf den Slicer klicken, um einen einzelnen Wert auszuwählen, oder Sie klicken auf den Rand und ziehen den Slicer auf den gewünschten Bereich.\nSie können außerdem Hintergrund- und Auswahlfarbe ändern sowie eine Reihe weiterer Formatierungsoptionen festlegen, um das Erscheinungsbild Ihrer Datendarstellung zu steuern. Zur Auswahl eines Bereichs können Sie auch bei gedrückter UMSCHALTTASTE klicken." + "Visual_Weeks_Determination_Standards": "Wochenbestimmungsstandards", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "– Keine –", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/el-GR/resources.resjson b/stringResources/el-GR/resources.resjson index 0942c68..d69b1a6 100644 --- a/stringResources/el-GR/resources.resjson +++ b/stringResources/el-GR/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Χρόνος", "Visual_General": "Γενικά", + "Visual_Short_Description": "Γραφικός επιλογέας εύρους ημερομηνιών για το φιλτράρισμα ημερομηνιών", + "Visual_Long_Description": "Ο αναλυτής λωρίδας χρόνου είναι ένας γραφικός επιλογέας εύρους ημερομηνιών που χρησιμοποιείται ως στοιχείο φιλτραρίσματος στο Power BI. Το φιλτράρισμα δεδομένων κατά ημερομηνία γίνεται εύκολο και διασκεδαστικό.\nΠόσο συχνά πρέπει να φιλτράρετε τα δεδομένα σας για μια χρονική περίοδο ή σε υψηλότερο επίπεδο, όπως κατά μήνα ή τρίμηνο; Κάθε φορά, σωστά; Το φιλτράρισμα γίνεται ενοχλητικό όταν πρέπει να κάνετε κλικ σε μεγάλο αριθμό τιμών ημερομηνιών για να επιλέξετε την περιοχή που θέλετε. Η αλλαγή της υποδιαίρεσης φίλτρου από μήνες σε τρίμηνα και έτη κατά την εκτέλεση είναι εξαιρετική δύσκολη. Δηλαδή, αυτό ίσχυε για το παρελθόν.\nΟ αναλυτής λωρίδας χρόνου διευκολύνει αυτήν τη διαδικασία. Με αυτό το απλό ρυθμιστικό για ημερομηνίες, αρκεί απλώς να κάνετε κλικ και να το σύρετε στην περιοχή που θέλετε. Μπορείτε επίσης να μεταβείτε σε προβολή έτους, τριμήνου ή μήνα για επιλογή περιοχών ακόμα και σε υψηλότερο επίπεδο από το επίπεδο ημερομηνιών.\nΑπλώς κάντε κλικ στο αναλυτή για να επιλέξετε μια μοναδική τιμή ή κάντε κλικ στην άκρη και σύρετε στην περιοχή που θέλετε.\nΜπορείτε επίσης να αλλάξετε το φόντο και το χρώμα επιλογής και πολλές άλλες επιλογές μορφοποίησης για να ελέγξετε την εμφάνιση και την αίσθηση. Ο συνδυασμός SHIFT+κλικ λειτουργεί επίσης για την επιλογή μιας περιοχής.", "Visual_FiscalYearStart": "Έναρξη οικονομικού έτους", + "Visual_FiscalYear": "Οικονομικό έτος", + "Visual_FiscalYear_Description": "Αυτή η επιλογή δεν έχει νόημα αν έχει επιλεγεί το πρότυπο ISO 8601", "Visual_Month": "Μήνας", "Visual_Month_January": "Ιανουάριος", "Visual_Month_February": "Φεβρουάριος", @@ -32,6 +36,13 @@ "Visual_Cells": "Κελιά", "Visual_Cell_SelectedColor": "Χρώμα επιλεγμένου κελιού", "Visual_Cell_UnselectedColor": "Χρώμα μη επιλεγμένου κελιού", + "Visual_Cell_SelectedStrokeColor": "Χρώμα επιλεγμένης πινελιάς κελιού", + "Visual_Cell_UnselectedStrokeColor": "Μη επιλεγμένο χρώμα πινελιάς κελιού", + "Visual_Cell_EnableManualSizing": "Ενεργοποίηση μη αυτόματης αλλαγής μεγέθους", + "Visual_Cell_Width": "Πλάτος κελιού", + "Visual_Cell_Height": "Ύψος κελιού", + "Visual_Cell_StrokeWidth": "Πλάτος μολυβιάς", + "Visual_Cell_GapWidth": "Πλάτος κενού", "Visual_Granularity": "Υποδιαίρεση", "Visual_ScaleColor": "Χρώμα κλίμακας", "Visual_SliderColor": "Χρώμα ρυθμιστικού", @@ -43,7 +54,10 @@ "Visual_Labels": "Ετικέτες", "Visual_ScaleSizeAdjustment": "Αυτόματη προσαρμογή μεγέθους κλίμακας", "Visual_FirstDayOfWeek": "Πρώτη ημέρα της εβδομάδας", + "Visual_FirstDayOfWeek_Description": "Αυτή η επιλογή δεν έχει νόημα αν έχει επιλεγεί το πρότυπο ISO 8601", "Visual_DisplayAll": "Εμφάνιση όλων", + "Visual_Cursor": "Τρέχουσα ομάδα εγγραφών", + "Visual_CursorColor": "Χρώμα δρομέα", "Visual_ForceSelection": "Επιβολή επιλογής", "Visual_CurrentPeriod": "Τρέχουσα περίοδος", "Visual_LatestAvailableDate": "Πιο πρόσφατη διαθέσιμη περίοδος", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Ορατότητα μήνα", "Visual_GranularityWeekVisibility": "Ορατότητα εβδομάδας", "Visual_GranularityDayVisibility": "Ορατότητα ημέρας", - "Timeline_Short_Description": "Γραφικός επιλογέας εύρους ημερομηνιών για το φιλτράρισμα ημερομηνιών", - "Timeline_Long_Description": "Ο αναλυτής λωρίδας χρόνου είναι ένας γραφικός επιλογέας εύρους ημερομηνιών που χρησιμοποιείται ως στοιχείο φιλτραρίσματος στο Power BI. Το φιλτράρισμα δεδομένων κατά ημερομηνία γίνεται εύκολο και διασκεδαστικό.\nΠόσο συχνά πρέπει να φιλτράρετε τα δεδομένα σας για μια χρονική περίοδο ή σε υψηλότερο επίπεδο, όπως κατά μήνα ή τρίμηνο; Κάθε φορά, σωστά; Το φιλτράρισμα γίνεται ενοχλητικό όταν πρέπει να κάνετε κλικ σε μεγάλο αριθμό τιμών ημερομηνιών για να επιλέξετε την περιοχή που θέλετε. Η αλλαγή της υποδιαίρεσης φίλτρου από μήνες σε τρίμηνα και έτη κατά την εκτέλεση είναι εξαιρετική δύσκολη. Δηλαδή, αυτό ίσχυε για το παρελθόν.\nΟ αναλυτής λωρίδας χρόνου διευκολύνει αυτήν τη διαδικασία. Με αυτό το απλό ρυθμιστικό για ημερομηνίες, αρκεί απλώς να κάνετε κλικ και να το σύρετε στην περιοχή που θέλετε. Μπορείτε επίσης να μεταβείτε σε προβολή έτους, τριμήνου ή μήνα για επιλογή περιοχών ακόμα και σε υψηλότερο επίπεδο από το επίπεδο ημερομηνιών.\nΑπλώς κάντε κλικ στο αναλυτή για να επιλέξετε μια μοναδική τιμή ή κάντε κλικ στην άκρη και σύρετε στην περιοχή που θέλετε.\nΜπορείτε επίσης να αλλάξετε το φόντο και το χρώμα επιλογής και πολλές άλλες επιλογές μορφοποίησης για να ελέγξετε την εμφάνιση και την αίσθηση. Ο συνδυασμός SHIFT+κλικ λειτουργεί επίσης για την επιλογή μιας περιοχής." + "Visual_Weeks_Determination_Standards": "Πρότυπα προσδιορισμού εβδομάδων", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "--Κανένας--", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/en-US/resources.resjson b/stringResources/en-US/resources.resjson index 4f3b85f..1d4c0e2 100644 --- a/stringResources/en-US/resources.resjson +++ b/stringResources/en-US/resources.resjson @@ -1,8 +1,11 @@ { "Role_Time": "Time", "Visual_General": "General", + "Visual_Short_Description": "Graphical date range selector to use for filtering dates", + "Visual_Long_Description": "The Timeline slicer is a graphical date range selector used as a filtering component in Power BI. This makes filtering data by date dimension easy and fun.\nHow often do you have to filter your data for a date range or at higher level such as month or quarter? Every single time. Right? Filtering is pain when you have to click through large numbers of date values to select the range you want. Changing the filter granularity from months, the quarters and years on the fly is super tedious. Well, it used to be super tedious.\nThe Timeline slicer is going to make this experience a breeze. With this simple slider control for dates, all you need to do, is just click and drag to the range that you want. You can also switch to a Year, Quarter or Month view to select ranges even at a higher level than dates.\nYou can simply click on the slicer to select a single value or click the edge and drag it to the range that you want.\nYou can also change the background & selection color and number of other formatting options to control the look-n-feel. SHIFT+Click also works for selecting a range.", "Visual_FiscalYearStart": "Fiscal Year Start", "Visual_FiscalYear": "Fiscal Year", + "Visual_FiscalYear_Description": "This option have no sense if ISO 8601 standard was picked", "Visual_Month": "Month", "Visual_Month_January": "January", "Visual_Month_February": "February", @@ -33,6 +36,13 @@ "Visual_Cells": "Cells", "Visual_Cell_SelectedColor": "Selected cell color", "Visual_Cell_UnselectedColor": "Unselected cell color", + "Visual_Cell_SelectedStrokeColor": "Selected cell stroke color", + "Visual_Cell_UnselectedStrokeColor": "Unselected cell stroke color", + "Visual_Cell_EnableManualSizing": "Enable manual sizing", + "Visual_Cell_Width": "Cell width", + "Visual_Cell_Height": "Cell height", + "Visual_Cell_StrokeWidth": "Stroke width", + "Visual_Cell_GapWidth": "Gap width", "Visual_Granularity": "Granularity", "Visual_ScaleColor": "Scale color", "Visual_SliderColor": "Slider color", @@ -44,7 +54,10 @@ "Visual_Labels": "Labels", "Visual_ScaleSizeAdjustment": "Scale size auto adjustment", "Visual_FirstDayOfWeek": "First Day of Week", + "Visual_FirstDayOfWeek_Description": "This option have no sense if ISO 8601 standard was picked", "Visual_DisplayAll": "Display all", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Cursor color", "Visual_ForceSelection": "Force selection", "Visual_CurrentPeriod": "Current period", "Visual_LatestAvailableDate": "Latest available period", @@ -53,5 +66,9 @@ "Visual_GranularityQuarterVisibility": "Quarter visibility", "Visual_GranularityMonthVisibility": "Month visibility", "Visual_GranularityWeekVisibility": "Week visibility", - "Visual_GranularityDayVisibility": "Day visibility" -} \ No newline at end of file + "Visual_GranularityDayVisibility": "Day visibility", + "Visual_Weeks_Determination_Standards": "Weeks Determination Standards", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- none --", + "Visual_Week_Standard_ISO8601": "ISO 8601" +} diff --git a/stringResources/es-ES/resources.resjson b/stringResources/es-ES/resources.resjson index 3ed40bc..6886748 100644 --- a/stringResources/es-ES/resources.resjson +++ b/stringResources/es-ES/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Hora", "Visual_General": "General", + "Visual_Short_Description": "Selector gráfico de intervalo de fechas para filtrar fechas", + "Visual_Long_Description": "La segmentación de escala de tiempo es un selector gráfico de intervalo de fechas usado como un componente de filtrado en Power BI. Este selector permite filtrar datos por dimensión de fechas de forma fácil y divertida.\n¿Con qué frecuencia tiene que filtrar los datos para un intervalo de fechas o en un nivel superior, como meses o trimestres? Siempre. Es así, ¿no? Filtrar es una molestia cuando hay que hacer clic en números grandes de valores de fechas para seleccionar un rango. Cambiar la granularidad de filtrado de meses, trimestres y años al instante es muy complicado. Bueno, solía ser muy complicado.\nLa segmentación de escala de tiempo hará que esta experiencia sea realmente sencilla. Con este sencillo control deslizante de fechas, solo necesita hacer clic y arrastrar hasta el rango que prefiera. También puede cambiar a la vista de año, trimestre o mes para seleccionar rangos con un nivel incluso mayor que las fechas.\nPuede hacer simplemente clic en la segmentación para seleccionar un solo valor, o bien puede hacer clic en el borde y arrastrarlo hasta el intervalo que prefiera.\nTambién puede cambiar el color de la selección y el fondo, así como el número de opciones de formato para controlar la apariencia. También puede usar MAYÚS+clic para seleccionar un rango.", "Visual_FiscalYearStart": "Inicio del año fiscal", + "Visual_FiscalYear": "Año fiscal", + "Visual_FiscalYear_Description": "Esta opción no tiene sentido si se seleccionó el estándar ISO 8601", "Visual_Month": "Mes", "Visual_Month_January": "Enero", "Visual_Month_February": "Febrero", @@ -32,6 +36,13 @@ "Visual_Cells": "Celdas", "Visual_Cell_SelectedColor": "Color de celda seleccionada", "Visual_Cell_UnselectedColor": "Color de celda no seleccionada", + "Visual_Cell_SelectedStrokeColor": "Color de trazo de celda seleccionado", + "Visual_Cell_UnselectedStrokeColor": "Color de trazo de celda no seleccionado", + "Visual_Cell_EnableManualSizing": "Habilitar el dimensionamiento manual", + "Visual_Cell_Width": "Ancho de celda", + "Visual_Cell_Height": "Alto de celda", + "Visual_Cell_StrokeWidth": "Ancho del trazo", + "Visual_Cell_GapWidth": "Ancho de interlineado", "Visual_Granularity": "Granularidad", "Visual_ScaleColor": "Color de la escala", "Visual_SliderColor": "Color del control deslizante", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiquetas", "Visual_ScaleSizeAdjustment": "Ajuste automático de tamaño de escala", "Visual_FirstDayOfWeek": "Primer día de la semana", + "Visual_FirstDayOfWeek_Description": "Esta opción no tiene sentido si se seleccionó el estándar ISO 8601", "Visual_DisplayAll": "Mostrar todo", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Color de cursor", "Visual_ForceSelection": "Forzar selección", "Visual_CurrentPeriod": "Período actual", "Visual_LatestAvailableDate": "Último período disponible", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Visibilidad de mes", "Visual_GranularityWeekVisibility": "Visibilidad de semana", "Visual_GranularityDayVisibility": "Visibilidad de día", - "Timeline_Short_Description": "Selector gráfico de intervalo de fechas para filtrar fechas", - "Timeline_Long_Description": "La segmentación de escala de tiempo es un selector gráfico de intervalo de fechas usado como un componente de filtrado en Power BI. Este selector permite filtrar datos por dimensión de fechas de forma fácil y divertida.\n¿Con qué frecuencia tiene que filtrar los datos para un intervalo de fechas o en un nivel superior, como meses o trimestres? Siempre. Es así, ¿no? Filtrar es una molestia cuando hay que hacer clic en números grandes de valores de fechas para seleccionar un rango. Cambiar la granularidad de filtrado de meses, trimestres y años al instante es muy complicado. Bueno, solía ser muy complicado.\nLa segmentación de escala de tiempo hará que esta experiencia sea realmente sencilla. Con este sencillo control deslizante de fechas, solo necesita hacer clic y arrastrar hasta el rango que prefiera. También puede cambiar a la vista de año, trimestre o mes para seleccionar rangos con un nivel incluso mayor que las fechas.\nPuede hacer simplemente clic en la segmentación para seleccionar un solo valor, o bien puede hacer clic en el borde y arrastrarlo hasta el intervalo que prefiera.\nTambién puede cambiar el color de la selección y el fondo, así como el número de opciones de formato para controlar la apariencia. También puede usar MAYÚS+clic para seleccionar un rango." + "Visual_Weeks_Determination_Standards": "Normas de determinación de semanas", + "Visual_Week_Standard": "Estándar", + "Visual_Week_Standard_None": "-- ninguna --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/et-EE/resources.resjson b/stringResources/et-EE/resources.resjson index 6b70ba6..fc7bca8 100644 --- a/stringResources/et-EE/resources.resjson +++ b/stringResources/et-EE/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Kellaaeg", "Visual_General": "Üldine", + "Visual_Short_Description": "Graafiline kuupäevavahemiku valija kuupäevade filtreerimiseks", + "Visual_Long_Description": "Ajaskaala tükeldi on graafiline kuupäevavahemiku valija, mida kasutatakse Power BI-s filtrimise komponendina. See muudab andmete filtrimise kuupäevadimensiooni järgi hõlpsaks ja lõbusaks.\nKui tihti te peate oma andmeid kuupäevavahemiku jaoks või kõrgemal tasemel (nt kuu või kvartal) filtrima? Kas iga kord, eksole? Filtrimine on piinarikas tegevus, kui peate soovitud vahemiku valimiseks klõpsima läbi suurel hulgal kuupäevaväärtusi. Filtri granulaarsuse käigupealt muutmine kuudest, kvartalitest ja aastatest on ülimalt tüütu. Tähendab, see oli varemalt ülimalt tüütu.\nAjaskaala tükeldi muudab selle väga lihtsaks. Kuupäevade lihtsa reguleeritava liuguriga peate ainult klõpsama ja lohistama soovitud vahemikuni. Samuti saate lülituda aasta, kvartali ja kuu vaatele ning valida kuupäevadest kõrgemal tasemel vahemikke.\nLihtsalt klõpsake tükeldil ja valige üksikväärtus või klõpsake serval ning lohistage soovitud vahemikuni.\nVälimuse muutmiseks saate ka muuta tausta ja valiku värvi ning ka palju teisi vormindamissuvandeid. Vahemiku valimisel saate kasutada ka kombinatsiooni SHIFT + klõps.", "Visual_FiscalYearStart": "Majandusaasta algus", + "Visual_FiscalYear": "Fiskaalaasta", + "Visual_FiscalYear_Description": "Sellel valikul pole mõtet, kui valitud on ISO 8601 standard", "Visual_Month": "Kuu", "Visual_Month_January": "Jaanuar", "Visual_Month_February": "Veebruar", @@ -32,6 +36,13 @@ "Visual_Cells": "Lahtrid", "Visual_Cell_SelectedColor": "Valitud lahtri värv", "Visual_Cell_UnselectedColor": "Valimata lahtri värv", + "Visual_Cell_SelectedStrokeColor": "Valitud lahtri joone värv", + "Visual_Cell_UnselectedStrokeColor": "Valimata lahtri joone värv", + "Visual_Cell_EnableManualSizing": "Luba käsitsi suuruse muutmine", + "Visual_Cell_Width": "Lahtri laius", + "Visual_Cell_Height": "Lahtri kõrgus", + "Visual_Cell_StrokeWidth": "Joone laius", + "Visual_Cell_GapWidth": "Vahe laius", "Visual_Granularity": "Granulaarsus", "Visual_ScaleColor": "Skaala värv", "Visual_SliderColor": "Liuguri värv", @@ -43,7 +54,10 @@ "Visual_Labels": "Sildid", "Visual_ScaleSizeAdjustment": "Skaala suuruse automaatne korrigeerimine", "Visual_FirstDayOfWeek": "Nädala esimene päev", + "Visual_FirstDayOfWeek_Description": "Sellel valikul pole mõtet, kui valitud on ISO 8601 standard", "Visual_DisplayAll": "Kuva kõik", + "Visual_Cursor": "Kursor", + "Visual_CursorColor": "Kursori värv", "Visual_ForceSelection": "Jõusta valik", "Visual_CurrentPeriod": "Praegune periood", "Visual_LatestAvailableDate": "Viimane saadaolev periood", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Kuu nähtavus", "Visual_GranularityWeekVisibility": "Nädala nähtavus", "Visual_GranularityDayVisibility": "Päeva nähtavus", - "Timeline_Short_Description": "Graafiline kuupäevavahemiku valija kuupäevade filtreerimiseks", - "Timeline_Long_Description": "Ajaskaala tükeldi on graafiline kuupäevavahemiku valija, mida kasutatakse Power BI-s filtrimise komponendina. See muudab andmete filtrimise kuupäevadimensiooni järgi hõlpsaks ja lõbusaks.\nKui tihti te peate oma andmeid kuupäevavahemiku jaoks või kõrgemal tasemel (nt kuu või kvartal) filtrima? Kas iga kord, eksole? Filtrimine on piinarikas tegevus, kui peate soovitud vahemiku valimiseks klõpsima läbi suurel hulgal kuupäevaväärtusi. Filtri granulaarsuse käigupealt muutmine kuudest, kvartalitest ja aastatest on ülimalt tüütu. Tähendab, see oli varemalt ülimalt tüütu.\nAjaskaala tükeldi muudab selle väga lihtsaks. Kuupäevade lihtsa reguleeritava liuguriga peate ainult klõpsama ja lohistama soovitud vahemikuni. Samuti saate lülituda aasta, kvartali ja kuu vaatele ning valida kuupäevadest kõrgemal tasemel vahemikke.\nLihtsalt klõpsake tükeldil ja valige üksikväärtus või klõpsake serval ning lohistage soovitud vahemikuni.\nVälimuse muutmiseks saate ka muuta tausta ja valiku värvi ning ka palju teisi vormindamissuvandeid. Vahemiku valimisel saate kasutada ka kombinatsiooni SHIFT + klõps." + "Visual_Weeks_Determination_Standards": "Nädalate määratlemise standardid", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- pole --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/eu-ES/resources.resjson b/stringResources/eu-ES/resources.resjson index 1404201..fed72cd 100644 --- a/stringResources/eu-ES/resources.resjson +++ b/stringResources/eu-ES/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Ordua", "Visual_General": "Orokorra", + "Visual_Short_Description": "Data barrutien hautatzaile grafikoa, datak iragazteko", + "Visual_Long_Description": "Kronologiako zatitzailea data tarte grafikoen hautatzaile bat da, Power BI-ko iragazketa-osagai gisa erabiltzen dena. Hura erabilita, oso erraza da datuak data-dimentsioen arabera iragaztea.\nZenbat aldiz iragazi behar dituzu datuak data tarte baten arabera edo azken hilabete edo hiruhilekoaren arabera? Beti, ezta? Datuak iragaztea nahiko gogaikarria izan daiteke behar duzun tartera iristeko aukera asko sakatu behar dituzunean. Iragazkiaren zehaztasuna hilabetetan, hiruhilekotan edo urtetan ezartzea oso aspergarria da... orain arte.\nKronologiako zatitzaileari esker, erraz asko iragazi ahalko dituzu datuak. Graduatzaile sinple bat duenez datak hautatzeko, behar duzun tartea sakatu eta arrastatu baino ez duzu. Urteko, hilabeteko edo hiruhileko ikuspegira ere alda zaitezke, data zehatzetakoa baino maila altuagoan ikusi nahi badituzu datuak.\nBesterik gabe, sakatu graduatzailea eta hautatu balio bakar bat edo sakatu ertza eta arrasta ezazu nahi duzun tartera.\nAtzeko planoa eta hautatutako kolorea ere alda ditzakezu. Formatu-aukera ugari dituzu itxura eta izaera kontrolatzeko. Maius+klik eginda ere hauta dezakezu tartea.", "Visual_FiscalYearStart": "Urte fiskalaren hasiera", + "Visual_FiscalYear": "Urte fiskala", + "Visual_FiscalYear_Description": "Aukera honek ez du zentzurik ISO 8601 estandarra aukeratuz gero", "Visual_Month": "Hilabetea", "Visual_Month_January": "Urtarrila", "Visual_Month_February": "Otsaila", @@ -32,6 +36,13 @@ "Visual_Cells": "Gelaxkak", "Visual_Cell_SelectedColor": "Gelaxka-kolorea hautatuta", "Visual_Cell_UnselectedColor": "Gelaxka-kolorea desautatuta", + "Visual_Cell_SelectedStrokeColor": "Hautatutako gelaxkaren trazuaren kolorea", + "Visual_Cell_UnselectedStrokeColor": "Hautatu gabeko gelaxkaren trazuaren kolorea", + "Visual_Cell_EnableManualSizing": "Gaitu eskuzko tamaina-ezartzea", + "Visual_Cell_Width": "Gelaxkaren zabalera", + "Visual_Cell_Height": "Gelaxkaren altuera", + "Visual_Cell_StrokeWidth": "Trazuaren zabalera", + "Visual_Cell_GapWidth": "Hutsunearen zabalera", "Visual_Granularity": "Gutxieneko balioa", "Visual_ScaleColor": "Eskalaren kolorea", "Visual_SliderColor": "Graduatzailearen kolorea", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiketak", "Visual_ScaleSizeAdjustment": "Doitu automatikoki eskala-tamaina", "Visual_FirstDayOfWeek": "Asteko lehen eguna", + "Visual_FirstDayOfWeek_Description": "Aukera honek ez du zentzurik ISO 8601 estandarra aukeratuz gero", "Visual_DisplayAll": "Bistaratu guztiak", + "Visual_Cursor": "Kurtsorea", + "Visual_CursorColor": "Kurtsorearen kolorea", "Visual_ForceSelection": "Behartu hautapena", "Visual_CurrentPeriod": "Uneko aldia", "Visual_LatestAvailableDate": "Erabilgarri dagoen azken data-tartea", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Hilabeteko ikusgaitasuna", "Visual_GranularityWeekVisibility": "Asteko ikusgaitasuna", "Visual_GranularityDayVisibility": "Egunaren ikusgaitasuna", - "Timeline_Short_Description": "Data barrutien hautatzaile grafikoa, datak iragazteko", - "Timeline_Long_Description": "Kronologiako zatitzailea data tarte grafikoen hautatzaile bat da, Power BI-ko iragazketa-osagai gisa erabiltzen dena. Hura erabilita, oso erraza da datuak data-dimentsioen arabera iragaztea.\nZenbat aldiz iragazi behar dituzu datuak data tarte baten arabera edo azken hilabete edo hiruhilekoaren arabera? Beti, ezta? Datuak iragaztea nahiko gogaikarria izan daiteke behar duzun tartera iristeko aukera asko sakatu behar dituzunean. Iragazkiaren zehaztasuna hilabetetan, hiruhilekotan edo urtetan ezartzea oso aspergarria da... orain arte.\nKronologiako zatitzaileari esker, erraz asko iragazi ahalko dituzu datuak. Graduatzaile sinple bat duenez datak hautatzeko, behar duzun tartea sakatu eta arrastatu baino ez duzu. Urteko, hilabeteko edo hiruhileko ikuspegira ere alda zaitezke, data zehatzetakoa baino maila altuagoan ikusi nahi badituzu datuak.\nBesterik gabe, sakatu graduatzailea eta hautatu balio bakar bat edo sakatu ertza eta arrasta ezazu nahi duzun tartera.\nAtzeko planoa eta hautatutako kolorea ere alda ditzakezu. Formatu-aukera ugari dituzu itxura eta izaera kontrolatzeko. Maius+klik eginda ere hauta dezakezu tartea." + "Visual_Weeks_Determination_Standards": "Asteak zehazteko arauak", + "Visual_Week_Standard": "Araua", + "Visual_Week_Standard_None": "-- bat ere ez --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/fi-FI/resources.resjson b/stringResources/fi-FI/resources.resjson index 6780773..f654b70 100644 --- a/stringResources/fi-FI/resources.resjson +++ b/stringResources/fi-FI/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Aika", "Visual_General": "Yleinen", + "Visual_Short_Description": "Graafinen päivämääräalueen valitsin päivämäärien suodattamista varten", + "Visual_Long_Description": "Timeline-osittaja on graafinen päivämäärävälin valitsin, jota käytetään suodatuskomponenttina Power BI:ssä. Tämä tekee tietojen suodattamisesta päivämäärädimension mukaan helppoa ja hauskaa.\nMiten usein sinun on suodatettava tietosi päivämäärävälille tai korkeammalla tasolla, kuten kuukautena tai vuosineljänneksenä? Joka ainoa kerta. Eikö vain? Suodattaminen on tuskallista, kun on napsauteltava suuria määriä päivämääräarvoja, jotta voidaan valita haluttu väli. Suodattimen yksityiskohtaisuuden muuttaminen kuukausista, vuosineljänneksistä ja vuosista lennossa on erittäin tylsää. Tai no, se oli aiemmin sitä.\nTimeline-osittaja tekee tästä vaivatonta. Tämän yksinkertaisen päivämäärien osittajaohjausobjektin avulla sinun tarvitsee vain napsauttaa ja vetää haluamaasi väliin.\nVoit osittajaa napsauttamalla valita yksittäisen arvon tai napsauttaa reunaa ja vetää se haluamaasi väliin.\nVoit myös muuttaa taustan ja valinnan väriä ja useita muita muotoiluasetuksia, jotta voit hallita ulkoasua ja käyttötuntumaa. Myös VAIHTO+napsautus toimii välin valitsemiseen.", "Visual_FiscalYearStart": "Tilivuoden alku", + "Visual_FiscalYear": "Tilivuosi", + "Visual_FiscalYear_Description": "Tämä asetus ei ole toteuttamiskelpoinen, jos ISO 8601 -standardia ei valita", "Visual_Month": "Kuukausi", "Visual_Month_January": "tammikuu", "Visual_Month_February": "helmikuu", @@ -32,6 +36,13 @@ "Visual_Cells": "Solut", "Visual_Cell_SelectedColor": "Valitun solun väri", "Visual_Cell_UnselectedColor": "Valitsemattoman solun väri", + "Visual_Cell_SelectedStrokeColor": "Valitun solun viivanleveys", + "Visual_Cell_UnselectedStrokeColor": "Valitsemattoman solun viivanleveys", + "Visual_Cell_EnableManualSizing": "Ota manuaalinen koon muuttaminen käyttöön", + "Visual_Cell_Width": "Solun leveys", + "Visual_Cell_Height": "Solun korkeus", + "Visual_Cell_StrokeWidth": "Viivanleveys", + "Visual_Cell_GapWidth": "Välin leveys", "Visual_Granularity": "Askelväli", "Visual_ScaleColor": "Asteikon väri", "Visual_SliderColor": "Liukusäätimen väri", @@ -43,7 +54,10 @@ "Visual_Labels": "Otsikot", "Visual_ScaleSizeAdjustment": "Koon skaalaamisen automaattinen säätö", "Visual_FirstDayOfWeek": "Viikon ensimmäinen päivä", + "Visual_FirstDayOfWeek_Description": "Tämä asetus ei ole toteuttamiskelpoinen, jos ISO 8601 -standardia ei valita", "Visual_DisplayAll": "Näytä kaikki", + "Visual_Cursor": "Kohdistin", + "Visual_CursorColor": "Kohdistimen väri", "Visual_ForceSelection": "Pakota valinta", "Visual_CurrentPeriod": "Nykyinen jakso", "Visual_LatestAvailableDate": "Viimeisin käytettävissä oleva aikaväli", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Kuukauden näkyvyys", "Visual_GranularityWeekVisibility": "Viikon näkyvyys", "Visual_GranularityDayVisibility": "Päivän näkyvyys", - "Timeline_Short_Description": "Graafinen päivämääräalueen valitsin päivämäärien suodattamista varten", - "Timeline_Long_Description": "Timeline-osittaja on graafinen päivämäärävälin valitsin, jota käytetään suodatuskomponenttina Power BI:ssä. Tämä tekee tietojen suodattamisesta päivämäärädimension mukaan helppoa ja hauskaa.\nMiten usein sinun on suodatettava tietosi päivämäärävälille tai korkeammalla tasolla, kuten kuukautena tai vuosineljänneksenä? Joka ainoa kerta. Eikö vain? Suodattaminen on tuskallista, kun on napsauteltava suuria määriä päivämääräarvoja, jotta voidaan valita haluttu väli. Suodattimen yksityiskohtaisuuden muuttaminen kuukausista, vuosineljänneksistä ja vuosista lennossa on erittäin tylsää. Tai no, se oli aiemmin sitä.\nTimeline-osittaja tekee tästä vaivatonta. Tämän yksinkertaisen päivämäärien osittajaohjausobjektin avulla sinun tarvitsee vain napsauttaa ja vetää haluamaasi väliin.\nVoit osittajaa napsauttamalla valita yksittäisen arvon tai napsauttaa reunaa ja vetää se haluamaasi väliin.\nVoit myös muuttaa taustan ja valinnan väriä ja useita muita muotoiluasetuksia, jotta voit hallita ulkoasua ja käyttötuntumaa. Myös VAIHTO+napsautus toimii välin valitsemiseen." + "Visual_Weeks_Determination_Standards": "Viikkojen määritysstandardit", + "Visual_Week_Standard": "Vakio", + "Visual_Week_Standard_None": "-- ei mitään --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/fr-FR/resources.resjson b/stringResources/fr-FR/resources.resjson index 62c7d4b..26978d1 100644 --- a/stringResources/fr-FR/resources.resjson +++ b/stringResources/fr-FR/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Heure", "Visual_General": "Général", + "Visual_Short_Description": "Sélecteur de plage de dates graphique à utiliser pour le filtrage de dates", + "Visual_Long_Description": "Le segment Chronologie est un sélecteur de plage de dates graphique utilisé comme composant de filtrage dans Power BI. Ce segment rend le filtrage des données par date facile et ludique.\nQuand devez-vous filtrer vos données selon une plage de dates ou un niveau plus élevé (mois ou trimestre) ? Tout le temps, n'est-ce pas ? Le filtrage est une opération fastidieuse quand vous devez parcourir un grand nombre de valeurs de date pour sélectionner la plage souhaitée. Le changement à la volée de la granularité du filtre (mois, trimestre et année) est particulièrement douloureux. Eh bien, ce n'est plus le cas.\nGrâce au segment Chronologie, le filtrage est un jeu d'enfant. Doté de simples curseurs de sélection des dates, il vous suffit de cliquer sur l'un d'eux et de le faire glisser jusqu'à la plage désirée. Vous pouvez également passer à une vue Année, Trimestre ou Mois pour sélectionner des plages d'un niveau supérieur à celui des dates.\nVous pouvez simplement cliquer sur le segment pour sélectionner une seule valeur ou cliquer sur la bordure et la faire glisser sur la plage souhaitée.\nVous pouvez également modifier la couleur et la sélection d'arrière-plan ainsi que d'autres options de mise en forme pour contrôler l'apparence. La combinaison de touches Maj+clic permet également de sélectionner une plage.", "Visual_FiscalYearStart": "Début de l'année fiscale", + "Visual_FiscalYear": "Année fiscale", + "Visual_FiscalYear_Description": "Cette option n’a aucun sens si la norme ISO 8601 a été sélectionnée", "Visual_Month": "Mois", "Visual_Month_January": "Janvier", "Visual_Month_February": "Février", @@ -32,6 +36,13 @@ "Visual_Cells": "Cellules", "Visual_Cell_SelectedColor": "Couleur de cellule sélectionnée", "Visual_Cell_UnselectedColor": "Couleur de cellule non sélectionnée", + "Visual_Cell_SelectedStrokeColor": "Couleur du trait de cellule sélectionnée", + "Visual_Cell_UnselectedStrokeColor": "Couleur du trait de cellule non sélectionnée", + "Visual_Cell_EnableManualSizing": "Activer le dimensionnement manuel", + "Visual_Cell_Width": "Largeur de cellule", + "Visual_Cell_Height": "Hauteur de cellule", + "Visual_Cell_StrokeWidth": "Épaisseur du trait", + "Visual_Cell_GapWidth": "Largeur de l’intervalle", "Visual_Granularity": "Granularité", "Visual_ScaleColor": "Couleur de l'échelle", "Visual_SliderColor": "Couleur du curseur", @@ -43,7 +54,10 @@ "Visual_Labels": "Étiquettes", "Visual_ScaleSizeAdjustment": "Réglage automatique de la taille de l'échelle", "Visual_FirstDayOfWeek": "Premier jour de la semaine", + "Visual_FirstDayOfWeek_Description": "Cette option n’a aucun sens si la norme ISO 8601 a été sélectionnée", "Visual_DisplayAll": "Afficher tout", + "Visual_Cursor": "Curseur", + "Visual_CursorColor": "Couleur du curseur", "Visual_ForceSelection": "Forcer la sélection", "Visual_CurrentPeriod": "Période actuelle", "Visual_LatestAvailableDate": "Période disponible la plus récente", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Visibilité par mois", "Visual_GranularityWeekVisibility": "Visibilité par semaine", "Visual_GranularityDayVisibility": "Visibilité par jour", - "Timeline_Short_Description": "Sélecteur de plage de dates graphique à utiliser pour le filtrage de dates", - "Timeline_Long_Description": "Le segment Chronologie est un sélecteur de plage de dates graphique utilisé comme composant de filtrage dans Power BI. Ce segment rend le filtrage des données par date facile et ludique.\nQuand devez-vous filtrer vos données selon une plage de dates ou un niveau plus élevé (mois ou trimestre) ? Tout le temps, n'est-ce pas ? Le filtrage est une opération fastidieuse quand vous devez parcourir un grand nombre de valeurs de date pour sélectionner la plage souhaitée. Le changement à la volée de la granularité du filtre (mois, trimestre et année) est particulièrement douloureux. Eh bien, ce n'est plus le cas.\nGrâce au segment Chronologie, le filtrage est un jeu d'enfant. Doté de simples curseurs de sélection des dates, il vous suffit de cliquer sur l'un d'eux et de le faire glisser jusqu'à la plage désirée. Vous pouvez également passer à une vue Année, Trimestre ou Mois pour sélectionner des plages d'un niveau supérieur à celui des dates.\nVous pouvez simplement cliquer sur le segment pour sélectionner une seule valeur ou cliquer sur la bordure et la faire glisser sur la plage souhaitée.\nVous pouvez également modifier la couleur et la sélection d'arrière-plan ainsi que d'autres options de mise en forme pour contrôler l'apparence. La combinaison de touches Maj+clic permet également de sélectionner une plage." + "Visual_Weeks_Determination_Standards": "Normes de détermination des semaines", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- aucun --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/gl-ES/resources.resjson b/stringResources/gl-ES/resources.resjson index 4a5267d..1ae2c27 100644 --- a/stringResources/gl-ES/resources.resjson +++ b/stringResources/gl-ES/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Hora", "Visual_General": "Xeral", + "Visual_Short_Description": "Selector gráfico de intervalos de datos que pode usar para filtrar datas.", + "Visual_Long_Description": "Timeline Slicer é un selector gráfico de intervalos de datos que se usa como un compoñente de filtrado en Power BI. Isto fai que o filtrado de datos por dimensión de datas sexa sinxelo e divertido.\nCon que frecuencia ten que filtrar os datos por un intervalo de datas ou un nivel superior, como o mes ou o trimestre? Sempre. Verdade? O filtrado é pesado se ten que premer en moitos números de valores de datas para seleccionar o intervalo que quere. Cambiar os detalles do filtro de meses, trimestres e anos sobre a marcha é moi tedioso. Ou adoitaba selo.\nTimeline Slicer vai converter esta experiencia nun suspiro. Con este sinxelo control do cursor da barra de desprazamento para datas, o único que ten que facer é premer e arrastrar ao intervalo que queira. Así mesmo, pode cambiar á visualización de ano, trimestre ou mes para seleccionar intervalos nun nivel superior do das datas.\nSó ten que premer no control da barra de desprazamento para seleccionar un único valor ou no borde e arrastralo ata o intervalo que queira.\nTamén pode modificar a cor do fondo e da selección, e outras opcións de formato para controlar o aspecto. Con MAIÚS+clic pode seleccionar un intervalo.", "Visual_FiscalYearStart": "Inicio do ano fiscal", + "Visual_FiscalYear": "Ano fiscal", + "Visual_FiscalYear_Description": "Esta opción non ten sentido se se escolleu o estándar ISO 8601", "Visual_Month": "Mes", "Visual_Month_January": "Xaneiro", "Visual_Month_February": "Febreiro", @@ -32,6 +36,13 @@ "Visual_Cells": "Celas", "Visual_Cell_SelectedColor": "Cor da cela seleccionada", "Visual_Cell_UnselectedColor": "Cor da cela non seleccionada", + "Visual_Cell_SelectedStrokeColor": "Seleccionouse a cor do trazo da cela", + "Visual_Cell_UnselectedStrokeColor": "Sen seleccionar a cor do trazo da cela", + "Visual_Cell_EnableManualSizing": "Activar cambio de tamaño manual", + "Visual_Cell_Width": "Largura da cela", + "Visual_Cell_Height": "Altura da cela", + "Visual_Cell_StrokeWidth": "Largura do trazo", + "Visual_Cell_GapWidth": "Largura do espazado", "Visual_Granularity": "Granularidade", "Visual_ScaleColor": "Cor da escala", "Visual_SliderColor": "Cor do cursor da barra de desprazamento", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiquetas", "Visual_ScaleSizeAdjustment": "Axuste automático do tamaño da escala", "Visual_FirstDayOfWeek": "Primeiro día da semana", + "Visual_FirstDayOfWeek_Description": "Esta opción non ten sentido se se escolleu o estándar ISO 8601", "Visual_DisplayAll": "Mostrar todo", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Cor do cursor", "Visual_ForceSelection": "Forzar selección", "Visual_CurrentPeriod": "Período actual", "Visual_LatestAvailableDate": "Último período no que estivo dispoñible", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Visibilidade mensual", "Visual_GranularityWeekVisibility": "Visibilidade semanal", "Visual_GranularityDayVisibility": "Visibilidade diaria", - "Timeline_Short_Description": "Selector gráfico de intervalos de datos que pode usar para filtrar datas.", - "Timeline_Long_Description": "Timeline Slicer é un selector gráfico de intervalos de datos que se usa como un compoñente de filtrado en Power BI. Isto fai que o filtrado de datos por dimensión de datas sexa sinxelo e divertido.\nCon que frecuencia ten que filtrar os datos por un intervalo de datas ou un nivel superior, como o mes ou o trimestre? Sempre. Verdade? O filtrado é pesado se ten que premer en moitos números de valores de datas para seleccionar o intervalo que quere. Cambiar os detalles do filtro de meses, trimestres e anos sobre a marcha é moi tedioso. Ou adoitaba selo.\nTimeline Slicer vai converter esta experiencia nun suspiro. Con este sinxelo control do cursor da barra de desprazamento para datas, o único que ten que facer é premer e arrastrar ao intervalo que queira. Así mesmo, pode cambiar á visualización de ano, trimestre ou mes para seleccionar intervalos nun nivel superior do das datas.\nSó ten que premer no control da barra de desprazamento para seleccionar un único valor ou no borde e arrastralo ata o intervalo que queira.\nTamén pode modificar a cor do fondo e da selección, e outras opcións de formato para controlar o aspecto. Con MAIÚS+clic pode seleccionar un intervalo." + "Visual_Weeks_Determination_Standards": "Normas de determinación de semanas", + "Visual_Week_Standard": "Estándar", + "Visual_Week_Standard_None": "-- nada --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/he-IL/resources.resjson b/stringResources/he-IL/resources.resjson index e19602d..f9cceb1 100644 --- a/stringResources/he-IL/resources.resjson +++ b/stringResources/he-IL/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "‏‏זמן", "Visual_General": "כללי", + "Visual_Short_Description": "בורר גרפי לטווח תאריכים לשימוש עבור סינון תאריכים", + "Visual_Long_Description": "כלי הפריסה 'ציר זמן' הוא בורר גרפי לטווח תאריכים המשמש כרכיב סינון ב- Power BI. כלי זה הופך את הסינון של נתונים לפי ממד תאריך לקל ומהנה.\nבאיזו תדירות עליך לסנן את הנתונים שלך עבור טווח תאריכים או ברמה גבוהה יותר כגון חודש או רבעון? בכל פעם, נכון?! סינון יכול להיות מייגע כאשר עליך לעבור בלחיצת עכבר לאורך כמויות גדולות של ערכי נתונים כדי לבחור את הטווח הרצוי. שינוי צפיפות הרשת של המסנן לפי חודשים, רבעונים ושנים תוך כדי תנועה הוא מייגע במיוחד. ובכן, השינוי המייגע של צפיפות הרשת הוא נחלת העבר.\nכלי הפריסה 'ציר זמן' עומד להפוך חוויה זו לקלי-קלות. באמצעות פקד מחוון זה עבור תאריכים, כל שעליך לעשות הוא ללחוץ על המחוון ולגרור את הסמן לטווח הרצוי. באפשרותך לעבור גם לתצוגת שנה, רבעון או חודש עדי לבחור טווחים ברמה גבוהה אפילו יותר מתאריכים.\nבאפשרותך פשוט ללחוץ על כלי הפריסה כדי לבחור ערך יחיד או ללחוץ על הקצה ולגרור אותו לטווח הרצוי.\nבאפשרותך גם לשנות את צבע הרקע והבחירה ואת המספר של אפשרויות עיצוב אחרות לשליטה במראה ובתחושה. באפשרותך לבחור טווח גם באמצעות SHIFT+לחיצה.", "Visual_FiscalYearStart": "התחלת שנת הכספים", + "Visual_FiscalYear": "שנת כספים", + "Visual_FiscalYear_Description": "אפשרות זו אינה הגיונית אם תקן ISO 8601 נבחר", "Visual_Month": "חודש", "Visual_Month_January": "ינואר", "Visual_Month_February": "פברואר", @@ -32,6 +36,13 @@ "Visual_Cells": "תאים", "Visual_Cell_SelectedColor": "צבע תא שנבחר", "Visual_Cell_UnselectedColor": "צבע תא שלא נבחר", + "Visual_Cell_SelectedStrokeColor": "צבע משיכת מברשת נבחר בתא", + "Visual_Cell_UnselectedStrokeColor": "הבחירה צבע משיכת מברשת בתא בוטלה", + "Visual_Cell_EnableManualSizing": "הפוך שינוי גודל ידני לזמין", + "Visual_Cell_Width": "רוחב תא", + "Visual_Cell_Height": "גובה תא", + "Visual_Cell_StrokeWidth": "רוחב קו", + "Visual_Cell_GapWidth": "רוחב מרווח", "Visual_Granularity": "צפיפות רשת", "Visual_ScaleColor": "צבע סרגל", "Visual_SliderColor": "צבע מחוון", @@ -43,7 +54,10 @@ "Visual_Labels": "תוויות", "Visual_ScaleSizeAdjustment": "התאמה אוטומטית של גודל קנה מידה", "Visual_FirstDayOfWeek": "היום הראשון בשבוע", + "Visual_FirstDayOfWeek_Description": "אפשרות זו אינה הגיונית אם תקן ISO 8601 נבחר", "Visual_DisplayAll": "הצג הכול", + "Visual_Cursor": "סמן", + "Visual_CursorColor": "צבע סמן", "Visual_ForceSelection": "כפה בחירה", "Visual_CurrentPeriod": "התקופה הנוכחית", "Visual_LatestAvailableDate": "התקופה הזמינה העדכנית ביותר", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "ניראות חודש", "Visual_GranularityWeekVisibility": "ניראות שבוע", "Visual_GranularityDayVisibility": "ניראות יום", - "Timeline_Short_Description": "בורר גרפי לטווח תאריכים לשימוש עבור סינון תאריכים", - "Timeline_Long_Description": "כלי הפריסה 'ציר זמן' הוא בורר גרפי לטווח תאריכים המשמש כרכיב סינון ב- Power BI. כלי זה הופך את הסינון של נתונים לפי ממד תאריך לקל ומהנה.\nבאיזו תדירות עליך לסנן את הנתונים שלך עבור טווח תאריכים או ברמה גבוהה יותר כגון חודש או רבעון? בכל פעם, נכון?! סינון יכול להיות מייגע כאשר עליך לעבור בלחיצת עכבר לאורך כמויות גדולות של ערכי נתונים כדי לבחור את הטווח הרצוי. שינוי צפיפות הרשת של המסנן לפי חודשים, רבעונים ושנים תוך כדי תנועה הוא מייגע במיוחד. ובכן, השינוי המייגע של צפיפות הרשת הוא נחלת העבר.\nכלי הפריסה 'ציר זמן' עומד להפוך חוויה זו לקלי-קלות. באמצעות פקד מחוון זה עבור תאריכים, כל שעליך לעשות הוא ללחוץ על המחוון ולגרור את הסמן לטווח הרצוי. באפשרותך לעבור גם לתצוגת שנה, רבעון או חודש עדי לבחור טווחים ברמה גבוהה אפילו יותר מתאריכים.\nבאפשרותך פשוט ללחוץ על כלי הפריסה כדי לבחור ערך יחיד או ללחוץ על הקצה ולגרור אותו לטווח הרצוי.\nבאפשרותך גם לשנות את צבע הרקע והבחירה ואת המספר של אפשרויות עיצוב אחרות לשליטה במראה ובתחושה. באפשרותך לבחור טווח גם באמצעות SHIFT+לחיצה." + "Visual_Weeks_Determination_Standards": "תקני קביעת שבועות", + "Visual_Week_Standard": "תקן", + "Visual_Week_Standard_None": "-- ללא --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/hi-IN/resources.resjson b/stringResources/hi-IN/resources.resjson index 7806ff4..cef9950 100644 --- a/stringResources/hi-IN/resources.resjson +++ b/stringResources/hi-IN/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "समय", "Visual_General": "सामान्य", + "Visual_Short_Description": "दिनांक फ़िल्टर करने के लिए उपयोग होने वाला ग्राफ़िकल दिनांक श्रेणी सेलेक्टर", + "Visual_Long_Description": "टाइमलाइन स्लाइसर Power BI में फ़िल्टरिंग घटक के रूप में उपयोग किया जाने वाला एक ग्राफ़िकल दिनांक श्रेणी सेलेक्टर है. यह दिनांक आयाम के अनुसार डेटा को फ़िल्टर करना आसान और मनोरंजक बनाता है.\nकिसी दिनांक श्रेणी या उच्चतर स्तर पर, जैसे कि माह या तिमाही के लिए आपको कितनी बार अपना डेटा फ़िल्टर करना पड़ता है? हर बार. ठीक? जब आपको इच्छित श्रेणी का चयन करने के लिए बड़ी संख्या में दिनांक मानों को क्लिक करना पड़े, तो फ़िल्टर करना दर्दनाक होता है. माह, तिमाही और वर्षों से बिना सोचे-समझे ग्रैन्युलेरिटी फ़िल्टर बदलना बहुत थकाऊ होता है. खैर, यह कभी थकाऊ हुआ करता था.\nटाइमलाइन स्लाइसर इस अनुभव को हवा के झोंके की तरह सुखद बनाने जा रहा है. दिनांकों के लिए इस सरल स्लाइडर नियंत्रण के जरिए बस आपको क्लिक करके अपनी इच्छित श्रेणी में खींचना है. श्रेणियों को दिनांक के मुकाबले और भी उच्चतर पर चयनित करने के लिए आप वर्ष, तिमाही या माह व्यू में भी स्विच कर सकते हैं.\nएकल मान चुनने के लिए आप मात्र स्लाइसर पर क्लिक कर सकते हैं या किनारे पर क्लिक करके इसे अपनी इच्छित श्रेणी में खींच सकते हैं.\nlook-n-feel नियंत्रित करने के लिए आप पृष्ठभूमि & चयन रंग और अन्य स्वरूपण विकल्पों की संख्या भी परिवर्तित कर सकते हैं. किसी श्रेणी का चयन करने के लिए SHIFT+Click भी कार्य करता है.", "Visual_FiscalYearStart": "वित्त वर्ष प्रारंभ", + "Visual_FiscalYear": "वित्तीय वर्ष", + "Visual_FiscalYear_Description": "यदि ISO 8601 मानक चुना गया था, तो इस विकल्प का कोई अर्थ नहीं है", "Visual_Month": "महीना", "Visual_Month_January": "जनवरी", "Visual_Month_February": "फ़रवरी", @@ -32,6 +36,13 @@ "Visual_Cells": "कक्ष", "Visual_Cell_SelectedColor": "चयनित कक्ष रंग", "Visual_Cell_UnselectedColor": "अचयनित कक्ष रंग", + "Visual_Cell_SelectedStrokeColor": "चयनित कक्ष स्ट्रोक रंग", + "Visual_Cell_UnselectedStrokeColor": "अचयनित कक्ष स्ट्रोक रंग", + "Visual_Cell_EnableManualSizing": "मैन्युअल आकार सक्षम करें", + "Visual_Cell_Width": "कक्ष की चौड़ाई", + "Visual_Cell_Height": "कक्ष की ऊँचाई", + "Visual_Cell_StrokeWidth": "स्ट्रोक की चौड़ाई", + "Visual_Cell_GapWidth": "चौड़ाई का अंतर", "Visual_Granularity": "ग्रैन्युलेरिटी", "Visual_ScaleColor": "स्केल का रंग", "Visual_SliderColor": "स्लाइडर का रंग", @@ -43,7 +54,10 @@ "Visual_Labels": "लेबल", "Visual_ScaleSizeAdjustment": "स्केल आकार स्वत: समायोजन", "Visual_FirstDayOfWeek": "सप्ताह का पहला दिन", + "Visual_FirstDayOfWeek_Description": "यदि ISO 8601 मानक चुना गया था, तो इस विकल्प का कोई अर्थ नहीं है", "Visual_DisplayAll": "सभी प्रदर्शित करें", + "Visual_Cursor": "कर्सर", + "Visual_CursorColor": "कर्सर का रंग", "Visual_ForceSelection": "बाध्य चयन", "Visual_CurrentPeriod": "वर्तमान अवधि", "Visual_LatestAvailableDate": "नवीनतम उपलब्ध समयावधि", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "माह दृश्यता", "Visual_GranularityWeekVisibility": "सप्ताह दृश्यता", "Visual_GranularityDayVisibility": "दिन दृश्यता", - "Timeline_Short_Description": "दिनांक फ़िल्टर करने के लिए उपयोग होने वाला ग्राफ़िकल दिनांक श्रेणी सेलेक्टर", - "Timeline_Long_Description": "टाइमलाइन स्लाइसर Power BI में फ़िल्टरिंग घटक के रूप में उपयोग किया जाने वाला एक ग्राफ़िकल दिनांक श्रेणी सेलेक्टर है. यह दिनांक आयाम के अनुसार डेटा को फ़िल्टर करना आसान और मनोरंजक बनाता है.\nकिसी दिनांक श्रेणी या उच्चतर स्तर पर, जैसे कि माह या तिमाही के लिए आपको कितनी बार अपना डेटा फ़िल्टर करना पड़ता है? हर बार. ठीक? जब आपको इच्छित श्रेणी का चयन करने के लिए बड़ी संख्या में दिनांक मानों को क्लिक करना पड़े, तो फ़िल्टर करना दर्दनाक होता है. माह, तिमाही और वर्षों से बिना सोचे-समझे ग्रैन्युलेरिटी फ़िल्टर बदलना बहुत थकाऊ होता है. खैर, यह कभी थकाऊ हुआ करता था.\nटाइमलाइन स्लाइसर इस अनुभव को हवा के झोंके की तरह सुखद बनाने जा रहा है. दिनांकों के लिए इस सरल स्लाइडर नियंत्रण के जरिए बस आपको क्लिक करके अपनी इच्छित श्रेणी में खींचना है. श्रेणियों को दिनांक के मुकाबले और भी उच्चतर पर चयनित करने के लिए आप वर्ष, तिमाही या माह व्यू में भी स्विच कर सकते हैं.\nएकल मान चुनने के लिए आप मात्र स्लाइसर पर क्लिक कर सकते हैं या किनारे पर क्लिक करके इसे अपनी इच्छित श्रेणी में खींच सकते हैं.\nlook-n-feel नियंत्रित करने के लिए आप पृष्ठभूमि & चयन रंग और अन्य स्वरूपण विकल्पों की संख्या भी परिवर्तित कर सकते हैं. किसी श्रेणी का चयन करने के लिए SHIFT+Click भी कार्य करता है." + "Visual_Weeks_Determination_Standards": "सप्ताह निर्धारण मानक", + "Visual_Week_Standard": "मानक", + "Visual_Week_Standard_None": "--कोई नहीं--", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/hr-HR/resources.resjson b/stringResources/hr-HR/resources.resjson index 88d6a10..248cfba 100644 --- a/stringResources/hr-HR/resources.resjson +++ b/stringResources/hr-HR/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Vrijeme", "Visual_General": "Općenito", + "Visual_Short_Description": "Grafički alat za odabir raspona datuma koji služi za filtriranje datuma", + "Visual_Long_Description": "Rezač vremenske crte grafički je alat za odabir raspona datuma koji sa koristi kao komponenta za filtriranje u dodatku Power BI. Time se filtriranje podatka po dimenziji datuma čini jednostavnim i zabavnim.\nKoliko često morate filtrirati podatke za određeni raspon datuma ili na višoj razini, npr. mjesečnoj ili tromjesečnoj? Svaki put. Je li tako? Filtriranje je nezgodno kada morate klikati po velikoj količini datumskih vrijednosti da biste odabrali željeni raspon. Promjena granularnosti filtra iz mjeseci, tromjesečja i godina u hodi vrlo je dugotrajno. Doduše, bilo je vrlo dugotrajno.\nUz rezač vremenske crte to ćete učiniti začas. Pomoću te jednostavne kontrole klizača za datume dovoljno je kliknuti i povući do željenog raspona. Možete se i prebacit i na prikaz godine, tromjesečja ili mjeseca da biste odabrali raspone i na više razini od datuma.\nMožete jednostavno kliknuti rezač da biste odabrali jednu vrijednost ili kliknuti rub i povući ga na željeni raspon.\nMožete i promijeniti boju pozadine i odabira te brojne druge mogućnosti oblikovanja da biste upravljali izgledom. Raspon je moguće odabrati i klikanjem uz pritisnutu tipku SHIFT.", "Visual_FiscalYearStart": "Početak fiskalne godine", + "Visual_FiscalYear": "Poslovna godina", + "Visual_FiscalYear_Description": "Ta mogućnost nema smisla ako je odabran standard ISO 8601", "Visual_Month": "Mjesec", "Visual_Month_January": "siječnja", "Visual_Month_February": "veljače", @@ -32,6 +36,13 @@ "Visual_Cells": "Ćelije", "Visual_Cell_SelectedColor": "Odabrana boja ćelije", "Visual_Cell_UnselectedColor": "Poništen odabir boje ćelije", + "Visual_Cell_SelectedStrokeColor": "Odabrana boja poteza ćelije", + "Visual_Cell_UnselectedStrokeColor": "Poništen odabir boje poteza ćelije", + "Visual_Cell_EnableManualSizing": "Omogući ručnu promjenu veličine", + "Visual_Cell_Width": "Širina ćelije", + "Visual_Cell_Height": "Visina ćelije", + "Visual_Cell_StrokeWidth": "Širina poteza", + "Visual_Cell_GapWidth": "Širina razmaka", "Visual_Granularity": "Granularnost", "Visual_ScaleColor": "Boja skale", "Visual_SliderColor": "Boja klizača", @@ -43,7 +54,10 @@ "Visual_Labels": "Oznake", "Visual_ScaleSizeAdjustment": "Automatska prilagodba veličine skale", "Visual_FirstDayOfWeek": "Prvi dan u tjednu", + "Visual_FirstDayOfWeek_Description": "Ta mogućnost nema smisla ako je odabran standard ISO 8601", "Visual_DisplayAll": "Prikaži sve", + "Visual_Cursor": "Kursor", + "Visual_CursorColor": "Boja kursora.", "Visual_ForceSelection": "Prisilan odabir", "Visual_CurrentPeriod": "Trenutno razdoblje", "Visual_LatestAvailableDate": "Najnovije dostupno razdoblje", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Vidljivost mjeseca", "Visual_GranularityWeekVisibility": "Vidljivost tjedna", "Visual_GranularityDayVisibility": "Vidljivost dana", - "Timeline_Short_Description": "Grafički alat za odabir raspona datuma koji služi za filtriranje datuma", - "Timeline_Long_Description": "Rezač vremenske crte grafički je alat za odabir raspona datuma koji sa koristi kao komponenta za filtriranje u dodatku Power BI. Time se filtriranje podatka po dimenziji datuma čini jednostavnim i zabavnim.\nKoliko često morate filtrirati podatke za određeni raspon datuma ili na višoj razini, npr. mjesečnoj ili tromjesečnoj? Svaki put. Je li tako? Filtriranje je nezgodno kada morate klikati po velikoj količini datumskih vrijednosti da biste odabrali željeni raspon. Promjena granularnosti filtra iz mjeseci, tromjesečja i godina u hodi vrlo je dugotrajno. Doduše, bilo je vrlo dugotrajno.\nUz rezač vremenske crte to ćete učiniti začas. Pomoću te jednostavne kontrole klizača za datume dovoljno je kliknuti i povući do željenog raspona. Možete se i prebacit i na prikaz godine, tromjesečja ili mjeseca da biste odabrali raspone i na više razini od datuma.\nMožete jednostavno kliknuti rezač da biste odabrali jednu vrijednost ili kliknuti rub i povući ga na željeni raspon.\nMožete i promijeniti boju pozadine i odabira te brojne druge mogućnosti oblikovanja da biste upravljali izgledom. Raspon je moguće odabrati i klikanjem uz pritisnutu tipku SHIFT." + "Visual_Weeks_Determination_Standards": "Standardi za određivanje tjedana", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- ništa --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/hu-HU/resources.resjson b/stringResources/hu-HU/resources.resjson index 4170408..d306759 100644 --- a/stringResources/hu-HU/resources.resjson +++ b/stringResources/hu-HU/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Időpont", "Visual_General": "Általános", + "Visual_Short_Description": "Grafikus dátumtartomány-választó a dátumok szűréséhez", + "Visual_Long_Description": "Az Idővonal-szeletelő egy grafikus dátumtartomány-választó, amelyet a Power BI szűrőként használ. Ez az eszköz egyszerűvé és élvezetessé teszi a dátumdimenzió szerinti adatszűrést.\nMilyen gyakran kell dátumtartomány vagy magasabb szintű időintervallum, például hónap vagy negyedév szerint szűrnie az adatait? Minden egyes alkalommal, igaz? A szűrés nehézkes feladat, amikor mindig nagy mennyiségű dátumértéken kell átkattintania, mire megtalálja a kívánt tartományt. És menet közben állítgatni a szűrés részletességét a hónapok, negyedévek és évek között rendkívül idegőrlő. Vagy legalábbis az volt, eddig.\nAz Idővonal-szeletelő egyszerűvé teszi a szűrést. Az eszközzel mindössze annyit kell tennie, hogy elhúzza a dátumokhoz való csúszkát a kívánt tartományra. Emellett válthat az évre, negyedévre vagy hónapra lebontott nézetek között is, ha a dátumoknál magasabb szintű tartományokat szeretne kijelölni.\nA szeletelőre kattintva egyszerűen kiválaszthat egy értéket, vagy a szélét a kívánt tartományra húzhatja.\nMegváltoztathatja továbbá a háttér és a kijelölés színét is, és használhat további formázási beállításokat a külső és a hangulat testreszabására. A tartományok kijelöléséhez működik a SHIFT+kattintás is.", "Visual_FiscalYearStart": "Pénzügyi év kezdete", + "Visual_FiscalYear": "Pénzügyi év", + "Visual_FiscalYear_Description": "Ennek a beállításnak nincs értelme, ha az ISO 8601 szabványt választotta", "Visual_Month": "Hónap", "Visual_Month_January": "Január", "Visual_Month_February": "Február", @@ -32,6 +36,13 @@ "Visual_Cells": "Cellák", "Visual_Cell_SelectedColor": "Kijelölt cella színe", "Visual_Cell_UnselectedColor": "Nem kijelölt cella színe", + "Visual_Cell_SelectedStrokeColor": "Kijelölt cella ecsetvonásszíne", + "Visual_Cell_UnselectedStrokeColor": "Nem kijelölt cella ecsetvonásszíne", + "Visual_Cell_EnableManualSizing": "Manuális méretezés engedélyezése", + "Visual_Cell_Width": "Cellaszélesség", + "Visual_Cell_Height": "Cellamagasság", + "Visual_Cell_StrokeWidth": "Vonás vastagsága", + "Visual_Cell_GapWidth": "Térköz szélessége", "Visual_Granularity": "Részletesség", "Visual_ScaleColor": "Skála színe", "Visual_SliderColor": "Csúszka színe", @@ -43,7 +54,10 @@ "Visual_Labels": "Címkék", "Visual_ScaleSizeAdjustment": "Skála méretének automatikus módosítása", "Visual_FirstDayOfWeek": "A hét első napja", + "Visual_FirstDayOfWeek_Description": "Ennek a beállításnak nincs értelme, ha az ISO 8601 szabványt választotta", "Visual_DisplayAll": "Összes megjelenítése", + "Visual_Cursor": "Kurzor", + "Visual_CursorColor": "Kurzor színe", "Visual_ForceSelection": "Kötelező kiválasztás", "Visual_CurrentPeriod": "Aktuális időszak", "Visual_LatestAvailableDate": "Rendelkezésre álló legújabb időszak", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Hónapokra lebontott láthatóság", "Visual_GranularityWeekVisibility": "Hetekre lebontott láthatóság", "Visual_GranularityDayVisibility": "Napokra lebontott láthatóság", - "Timeline_Short_Description": "Grafikus dátumtartomány-választó a dátumok szűréséhez", - "Timeline_Long_Description": "Az Idővonal-szeletelő egy grafikus dátumtartomány-választó, amelyet a Power BI szűrőként használ. Ez az eszköz egyszerűvé és élvezetessé teszi a dátumdimenzió szerinti adatszűrést.\nMilyen gyakran kell dátumtartomány vagy magasabb szintű időintervallum, például hónap vagy negyedév szerint szűrnie az adatait? Minden egyes alkalommal, igaz? A szűrés nehézkes feladat, amikor mindig nagy mennyiségű dátumértéken kell átkattintania, mire megtalálja a kívánt tartományt. És menet közben állítgatni a szűrés részletességét a hónapok, negyedévek és évek között rendkívül idegőrlő. Vagy legalábbis az volt, eddig.\nAz Idővonal-szeletelő egyszerűvé teszi a szűrést. Az eszközzel mindössze annyit kell tennie, hogy elhúzza a dátumokhoz való csúszkát a kívánt tartományra. Emellett válthat az évre, negyedévre vagy hónapra lebontott nézetek között is, ha a dátumoknál magasabb szintű tartományokat szeretne kijelölni.\nA szeletelőre kattintva egyszerűen kiválaszthat egy értéket, vagy a szélét a kívánt tartományra húzhatja.\nMegváltoztathatja továbbá a háttér és a kijelölés színét is, és használhat további formázási beállításokat a külső és a hangulat testreszabására. A tartományok kijelöléséhez működik a SHIFT+kattintás is." + "Visual_Weeks_Determination_Standards": "Hetek meghatározási szabványai", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- nincs --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/id-ID/resources.resjson b/stringResources/id-ID/resources.resjson index 93faeb0..6b43777 100644 --- a/stringResources/id-ID/resources.resjson +++ b/stringResources/id-ID/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Waktu", "Visual_General": "Umum", + "Visual_Short_Description": "Pemilih rentang tanggal grafis akan digunakan untuk memfilter tanggal", + "Visual_Long_Description": "Timeline slicer adalah pemilih rentang tanggal grafis yang digunakan sebagai komponen pemfilteran dalam Power BI. Komponen ini membuat pemfilteran data berdasarkan dimensi tanggal menjadi mudah dan menyenangkan.\nSeberapa sering Anda harus memfilter data untuk rentang tanggal atau pada tingkat yang lebih tinggi seperti bulan atau kuartal? Setiap saat, bukan? Pemfilteran menjadi rumit ketika Anda harus mengklik banyak nilai tanggal untuk memilih rentang yang diinginkan. Mengubah granularitas filter dari bulan, kuartal, dan tahun akan sangat membosankan. Sekarang tidak lagi.\nTimeline slicer akan membuat proses ini menjadi sangat mudah. Dengan kontrol penggeser sederhana untuk tanggal, Anda cukup mengklik dan menyeret ke rentang yang diinginkan. Anda juga dapat beralih ke tampilan Tahun, Kuartal atau Bulan untuk memilih rentang pada tingkat yang lebih tinggi dibandingkan tanggal.\nAnda dapat dengan mudah mengklik pemotong untuk memilih satu nilai atau mengklik pada tepinya lalu menyeretnya ke rentang yang diinginkan.\nAnda juga dapat mengubah warna latar belakang & pilihan serta sejumlah opsi pemformatan lain untuk mengontrol tampilan dan nuansanya. SHIFT + Klik juga berfungsi untuk memilih rentang.", "Visual_FiscalYearStart": "Awal Tahun Fiskal", + "Visual_FiscalYear": "Tahun Fiskal", + "Visual_FiscalYear_Description": "Opsi ini tidak masuk akal jika standar ISO 8601 dipilih", "Visual_Month": "Bulan", "Visual_Month_January": "Januari", "Visual_Month_February": "Februari", @@ -32,6 +36,13 @@ "Visual_Cells": "Sel", "Visual_Cell_SelectedColor": "Warna sel yang dipilih", "Visual_Cell_UnselectedColor": "Warna sel yang batal dipilih", + "Visual_Cell_SelectedStrokeColor": "Warna goresan sel dipilih", + "Visual_Cell_UnselectedStrokeColor": "Warna goresan sel batal dipilih", + "Visual_Cell_EnableManualSizing": "Aktifkan pengatur ukuran manual", + "Visual_Cell_Width": "Lebar sel", + "Visual_Cell_Height": "Tinggi sel", + "Visual_Cell_StrokeWidth": "Lebar goresan", + "Visual_Cell_GapWidth": "Lebar celah", "Visual_Granularity": "Granularitas", "Visual_ScaleColor": "Warna skala", "Visual_SliderColor": "Warna penggeser", @@ -43,7 +54,10 @@ "Visual_Labels": "Label", "Visual_ScaleSizeAdjustment": "Penyesuaian otomatis ukuran skala", "Visual_FirstDayOfWeek": "Hari Pertama Dalam Seminggu", + "Visual_FirstDayOfWeek_Description": "Opsi ini tidak masuk akal jika standar ISO 8601 dipilih", "Visual_DisplayAll": "Tampilkan semua", + "Visual_Cursor": "Kursor", + "Visual_CursorColor": "Warna kursor", "Visual_ForceSelection": "Pilih paksa", "Visual_CurrentPeriod": "Periode saat ini", "Visual_LatestAvailableDate": "Periode terakhir yang tersedia", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Visibilitas bulan", "Visual_GranularityWeekVisibility": "Visibilitas minggu", "Visual_GranularityDayVisibility": "Visibilitas hari", - "Timeline_Short_Description": "Pemilih rentang tanggal grafis akan digunakan untuk memfilter tanggal", - "Timeline_Long_Description": "Timeline slicer adalah pemilih rentang tanggal grafis yang digunakan sebagai komponen pemfilteran dalam Power BI. Komponen ini membuat pemfilteran data berdasarkan dimensi tanggal menjadi mudah dan menyenangkan.\nSeberapa sering Anda harus memfilter data untuk rentang tanggal atau pada tingkat yang lebih tinggi seperti bulan atau kuartal? Setiap saat, bukan? Pemfilteran menjadi rumit ketika Anda harus mengklik banyak nilai tanggal untuk memilih rentang yang diinginkan. Mengubah granularitas filter dari bulan, kuartal, dan tahun akan sangat membosankan. Sekarang tidak lagi.\nTimeline slicer akan membuat proses ini menjadi sangat mudah. Dengan kontrol penggeser sederhana untuk tanggal, Anda cukup mengklik dan menyeret ke rentang yang diinginkan. Anda juga dapat beralih ke tampilan Tahun, Kuartal atau Bulan untuk memilih rentang pada tingkat yang lebih tinggi dibandingkan tanggal.\nAnda dapat dengan mudah mengklik pemotong untuk memilih satu nilai atau mengklik pada tepinya lalu menyeretnya ke rentang yang diinginkan.\nAnda juga dapat mengubah warna latar belakang & pilihan serta sejumlah opsi pemformatan lain untuk mengontrol tampilan dan nuansanya. SHIFT + Klik juga berfungsi untuk memilih rentang." + "Visual_Weeks_Determination_Standards": "Standar Penentuan Minggu", + "Visual_Week_Standard": "Standar", + "Visual_Week_Standard_None": "-- tidak ada --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/it-IT/resources.resjson b/stringResources/it-IT/resources.resjson index ba9577a..aaaae3e 100644 --- a/stringResources/it-IT/resources.resjson +++ b/stringResources/it-IT/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Ora", "Visual_General": "Generale", + "Visual_Short_Description": "Selettore grafico dell'intervallo di date da usare per filtrare le date", + "Visual_Long_Description": "Il filtro dei dati della sequenza temporale è un selettore grafico dell'intervallo di date usato come componente di filtro in Power BI. Grazie a questo oggetto è possibile filtrare i dati in base alla data in modo semplice e divertente.\nCon quale frequenza è necessario filtrare i dati per un intervallo di date o a un livello superiore, ad esempio mese o trimestre? Ogni volta. Giusto? Il filtraggio dei dati è un'operazione complessa quando si deve fare clic su un gran numero di valori di data per selezionare l'intervallo desiderato. Cambiare al volo la granularità del filtro da mesi, trimestri e anni al volo è davvero noioso, o meglio era davvero noioso.\nIl filtro dei dati della sequenza temporale semplifica notevolmente questa esperienza. Con questo semplice controllo a scorrimento per le date, è sufficiente fare clic e trascinare sull'intervallo che si desidera. È anche possibile passare a una visualizzazione per anno, trimestre o mese per selezionare intervalli anche a un livello superiore rispetto alle date.\nÈ sufficiente fare clic sul filtro dei dati per selezionare un singolo valore oppure fare clic sul bordo e trascinarlo sull'intervallo desiderato.\nÈ anche possibile modificare il colore di sfondo e di selezione, nonché numerose altre opzioni di formattazione per controllare l'aspetto. La combinazione MAIUSC+clic funziona anche per la selezione di un intervallo.", "Visual_FiscalYearStart": "Inizio anno fiscale", + "Visual_FiscalYear": "Anno fiscale", + "Visual_FiscalYear_Description": "Questa opzione non ha senso se è stato selezionato lo standard ISO 8601", "Visual_Month": "Mese", "Visual_Month_January": "Gennaio", "Visual_Month_February": "Febbraio", @@ -32,6 +36,13 @@ "Visual_Cells": "Celle", "Visual_Cell_SelectedColor": "Colore della cella selezionata", "Visual_Cell_UnselectedColor": "Colore della cella non selezionata", + "Visual_Cell_SelectedStrokeColor": "Colore tratto cella selezionato", + "Visual_Cell_UnselectedStrokeColor": "Colore tratto cella non selezionato", + "Visual_Cell_EnableManualSizing": "Abilita il ridimensionamento manuale", + "Visual_Cell_Width": "Larghezza cella", + "Visual_Cell_Height": "Altezza cella", + "Visual_Cell_StrokeWidth": "Spessore tratto", + "Visual_Cell_GapWidth": "Larghezza spaziatura", "Visual_Granularity": "Granularità", "Visual_ScaleColor": "Colore della scala", "Visual_SliderColor": "Colore del dispositivo di scorrimento", @@ -43,7 +54,10 @@ "Visual_Labels": "Etichette", "Visual_ScaleSizeAdjustment": "Regolazione automatica delle dimensioni di scala", "Visual_FirstDayOfWeek": "Primo giorno della settimana", + "Visual_FirstDayOfWeek_Description": "Questa opzione non ha senso se è stato selezionato lo standard ISO 8601", "Visual_DisplayAll": "Visualizza tutto", + "Visual_Cursor": "Cursore", + "Visual_CursorColor": "Colore cursore", "Visual_ForceSelection": "Forza selezione", "Visual_CurrentPeriod": "Periodo corrente", "Visual_LatestAvailableDate": "Ultimo periodo disponibile", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Visibilità del mese", "Visual_GranularityWeekVisibility": "Visibilità della settimana", "Visual_GranularityDayVisibility": "Visibilità del giorno", - "Timeline_Short_Description": "Selettore grafico dell'intervallo di date da usare per filtrare le date", - "Timeline_Long_Description": "Il filtro dei dati della sequenza temporale è un selettore grafico dell'intervallo di date usato come componente di filtro in Power BI. Grazie a questo oggetto è possibile filtrare i dati in base alla data in modo semplice e divertente.\nCon quale frequenza è necessario filtrare i dati per un intervallo di date o a un livello superiore, ad esempio mese o trimestre? Ogni volta. Giusto? Il filtraggio dei dati è un'operazione complessa quando si deve fare clic su un gran numero di valori di data per selezionare l'intervallo desiderato. Cambiare al volo la granularità del filtro da mesi, trimestri e anni al volo è davvero noioso, o meglio era davvero noioso.\nIl filtro dei dati della sequenza temporale semplifica notevolmente questa esperienza. Con questo semplice controllo a scorrimento per le date, è sufficiente fare clic e trascinare sull'intervallo che si desidera. È anche possibile passare a una visualizzazione per anno, trimestre o mese per selezionare intervalli anche a un livello superiore rispetto alle date.\nÈ sufficiente fare clic sul filtro dei dati per selezionare un singolo valore oppure fare clic sul bordo e trascinarlo sull'intervallo desiderato.\nÈ anche possibile modificare il colore di sfondo e di selezione, nonché numerose altre opzioni di formattazione per controllare l'aspetto. La combinazione MAIUSC+clic funziona anche per la selezione di un intervallo." + "Visual_Weeks_Determination_Standards": "Standard di determinazione settimane", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "--nessuno--", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/ja-JP/resources.resjson b/stringResources/ja-JP/resources.resjson index 8db56c3..ad955d0 100644 --- a/stringResources/ja-JP/resources.resjson +++ b/stringResources/ja-JP/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "時間", "Visual_General": "全般", + "Visual_Short_Description": "日付のフィルター処理に使用するグラフィカル日付範囲セレクター", + "Visual_Long_Description": "タイムライン スライサーは、Power BI でフィルター コンポーネントとして使用するグラフィカルな日付範囲セレクターです。これを使うと、簡単かつ興味深い方法で日付ディメンションによってデータのフィルター処理を実行できます。\nどれほどの頻度で、日付範囲または月や四半期などの大きなレベルでデータをフィルター処理することを余儀なくされますか。毎回です。ご存じでしたか? 必要な範囲を選択するために大量の日付値をクリックしなければならないとしたら、フィルター処理は苦痛になります。フィルターの粒度を、月、四半期、年にその場で変更する操作はとても面倒です。というより、今まではとても面倒でした。\nタイムライン スライサーでは、その操作をいとも簡単に実行できます。日付を選択するこのシンプルなスライダー コントロールでは、必要な範囲をクリックしてドラッグするだけで済みます。また、日よりも長い単位で範囲を選択する場合であっても、年、四半期、月のビューに切り替えることができます。\nスライサーをクリックするだけで、1 つの値を選択できます。または、境界をクリックし、必要な範囲までドラッグすることもできます。\nさらに、背景色、選択色、その他のいくつかの書式オプションを変更して、外観を制御することもできます。範囲の選択は、Shift キーを押しながらクリックする操作も可能です。", "Visual_FiscalYearStart": "会計年度の開始", + "Visual_FiscalYear": "会計年度", + "Visual_FiscalYear_Description": "ISO 8601 標準が選択されている場合、このオプションには意味がありません", "Visual_Month": "月", "Visual_Month_January": "1 月", "Visual_Month_February": "2 月", @@ -32,6 +36,13 @@ "Visual_Cells": "セル", "Visual_Cell_SelectedColor": "選択したセルの色", "Visual_Cell_UnselectedColor": "選択されていないセルの色", + "Visual_Cell_SelectedStrokeColor": "選択したセル ストロークの色", + "Visual_Cell_UnselectedStrokeColor": "選択されていないセル ストロークの色", + "Visual_Cell_EnableManualSizing": "手動によるサイズ変更を有効にする", + "Visual_Cell_Width": "セルの幅", + "Visual_Cell_Height": "セルの高さ", + "Visual_Cell_StrokeWidth": "ストロークの幅", + "Visual_Cell_GapWidth": "ギャップの幅", "Visual_Granularity": "細分性", "Visual_ScaleColor": "スケールの色", "Visual_SliderColor": "スライダーの色", @@ -43,7 +54,10 @@ "Visual_Labels": "ラベル", "Visual_ScaleSizeAdjustment": "スケール サイズの自動調整", "Visual_FirstDayOfWeek": "週の最初の曜日", + "Visual_FirstDayOfWeek_Description": "ISO 8601 標準が選択されている場合、このオプションには意味がありません", "Visual_DisplayAll": "すべて表示", + "Visual_Cursor": "カーソル", + "Visual_CursorColor": "カーソルの色", "Visual_ForceSelection": "選択を必須にする", "Visual_CurrentPeriod": "現在の期間", "Visual_LatestAvailableDate": "使用可能な最新の期間", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "月を表示", "Visual_GranularityWeekVisibility": "週を表示", "Visual_GranularityDayVisibility": "日付の表示", - "Timeline_Short_Description": "日付のフィルター処理に使用するグラフィカル日付範囲セレクター", - "Timeline_Long_Description": "タイムライン スライサーは、Power BI でフィルター コンポーネントとして使用するグラフィカルな日付範囲セレクターです。これを使うと、簡単かつ興味深い方法で日付ディメンションによってデータのフィルター処理を実行できます。\nどれほどの頻度で、日付範囲または月や四半期などの大きなレベルでデータをフィルター処理することを余儀なくされますか。毎回です。ご存じでしたか? 必要な範囲を選択するために大量の日付値をクリックしなければならないとしたら、フィルター処理は苦痛になります。フィルターの粒度を、月、四半期、年にその場で変更する操作はとても面倒です。というより、今まではとても面倒でした。\nタイムライン スライサーでは、その操作をいとも簡単に実行できます。日付を選択するこのシンプルなスライダー コントロールでは、必要な範囲をクリックしてドラッグするだけで済みます。また、日よりも長い単位で範囲を選択する場合であっても、年、四半期、月のビューに切り替えることができます。\nスライサーをクリックするだけで、1 つの値を選択できます。または、境界をクリックし、必要な範囲までドラッグすることもできます。\nさらに、背景色、選択色、その他のいくつかの書式オプションを変更して、外観を制御することもできます。範囲の選択は、Shift キーを押しながらクリックする操作も可能です。" + "Visual_Weeks_Determination_Standards": "週の決定基準", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- なし --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/kk-KZ/resources.resjson b/stringResources/kk-KZ/resources.resjson index 6236545..3c724dc 100644 --- a/stringResources/kk-KZ/resources.resjson +++ b/stringResources/kk-KZ/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Уақыт", "Visual_General": "Жалпы", + "Visual_Short_Description": "Күндерді сүзу үшін пайдаланылатын графикалық күн ауқымы селекторы", + "Visual_Long_Description": "Уақыт шкаласы слайсері — Power BI жүйесінде сүзу компоненті ретінде пайдаланылатын графикалық күндер ауқымының селекторы. Ол деректерді күн өлшемі бойынша сүзуді жеңіл әрі қызықты етеді.\nКүндер ауқымы үшін немесе жоғарырақ деңгейде деректеріңізді қаншалықты жиі сүзу қажет болады, мысалы, ай немесе тоқсан? Әрқашан. Дұрыс па? Қажетті ауқымды таңдау үшін күн мәндерінің үлкен сандары арқылы басу қажет болғанда, сүзу қиын болады. Сүзгінің нақтылау дәрежесін айлардан, тоқсандардан және жылдардан жылдам өзгерту өте қиын жұмыс. Бұл бұрын өте қиын болған.\n Уақыт шкаласы слайсері бұл процесті жеңілдетеді. Күндерге арналған бұл қарапайым жүгірткі басқару элементінің көмегімен, басып, қажетті ауқымға апарсаңыз жеткілікті. Сонымен қатар, күндерден жоғарырақ деңгейдегі ауқымдарды таңдау үшін жыл, тоқсан немеес ай көрінісіне ауысуға болады.\nБір мәнді таңдау үшін слайсерді басыңыз немесе жиегін басып, қажетті ауқымға апарыңыз.\nСыртқы көрінісін басқару үшін фон мен таңдау түсін және басқа пішімдеу параметрлерін өзгертуге болады. Ауқымды таңдау үшін SHIFT+басу әрекетін де орындауға болады.", "Visual_FiscalYearStart": "Қаржы жылының басталуы", + "Visual_FiscalYear": "Қаржылық жыл", + "Visual_FiscalYear_Description": "ISO 8601 стандарты таңдалған болса, бұл опцияның мағынасы жоқ", "Visual_Month": "Ай", "Visual_Month_January": "Қаңтар", "Visual_Month_February": "Ақпан", @@ -32,6 +36,13 @@ "Visual_Cells": "Ұяшықтар", "Visual_Cell_SelectedColor": "Таңдалған ұяшық түсі", "Visual_Cell_UnselectedColor": "Таңдалмаған ұяшық түсі", + "Visual_Cell_SelectedStrokeColor": "Таңдалған ұяшықтың штрих түсі", + "Visual_Cell_UnselectedStrokeColor": "Таңдалмаған ұяшықтың штрих түсі", + "Visual_Cell_EnableManualSizing": "Қолмен өлшемін өзгертуді қосу", + "Visual_Cell_Width": "Ұяшық ені", + "Visual_Cell_Height": "Ұяшық биіктігі", + "Visual_Cell_StrokeWidth": "Штрих қалыңдығы", + "Visual_Cell_GapWidth": "Саңылау ені", "Visual_Granularity": "Нақтылау дәрежесі", "Visual_ScaleColor": "Масштаб түсі", "Visual_SliderColor": "Жүгірткі түсі", @@ -43,7 +54,10 @@ "Visual_Labels": "Белгілер", "Visual_ScaleSizeAdjustment": "Масштаб өлшемін автоматты түрде реттеу", "Visual_FirstDayOfWeek": "Аптаның бірінші күні", + "Visual_FirstDayOfWeek_Description": "ISO 8601 стандарты таңдалған болса, бұл опцияның мағынасы жоқ", "Visual_DisplayAll": "Барлығын көрсету", + "Visual_Cursor": "Курсор", + "Visual_CursorColor": "Курсор түсі", "Visual_ForceSelection": "Мәжбүрлі таңдау", "Visual_CurrentPeriod": "Ағымдағы кезең", "Visual_LatestAvailableDate": "Ең соңғы қолжетімді мерзім", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Айдың көрінуі", "Visual_GranularityWeekVisibility": "Аптаның көрінуі", "Visual_GranularityDayVisibility": "Күннің көрінуі", - "Timeline_Short_Description": "Күндерді сүзу үшін пайдаланылатын графикалық күн ауқымы селекторы", - "Timeline_Long_Description": "Уақыт шкаласы слайсері — Power BI жүйесінде сүзу компоненті ретінде пайдаланылатын графикалық күндер ауқымының селекторы. Ол деректерді күн өлшемі бойынша сүзуді жеңіл әрі қызықты етеді.\nКүндер ауқымы үшін немесе жоғарырақ деңгейде деректеріңізді қаншалықты жиі сүзу қажет болады, мысалы, ай немесе тоқсан? Әрқашан. Дұрыс па? Қажетті ауқымды таңдау үшін күн мәндерінің үлкен сандары арқылы басу қажет болғанда, сүзу қиын болады. Сүзгінің нақтылау дәрежесін айлардан, тоқсандардан және жылдардан жылдам өзгерту өте қиын жұмыс. Бұл бұрын өте қиын болған.\n Уақыт шкаласы слайсері бұл процесті жеңілдетеді. Күндерге арналған бұл қарапайым жүгірткі басқару элементінің көмегімен, басып, қажетті ауқымға апарсаңыз жеткілікті. Сонымен қатар, күндерден жоғарырақ деңгейдегі ауқымдарды таңдау үшін жыл, тоқсан немеес ай көрінісіне ауысуға болады.\nБір мәнді таңдау үшін слайсерді басыңыз немесе жиегін басып, қажетті ауқымға апарыңыз.\nСыртқы көрінісін басқару үшін фон мен таңдау түсін және басқа пішімдеу параметрлерін өзгертуге болады. Ауқымды таңдау үшін SHIFT+басу әрекетін де орындауға болады." + "Visual_Weeks_Determination_Standards": "Апта бойынша анықтық стандарттары", + "Visual_Week_Standard": "Стандартты", + "Visual_Week_Standard_None": "-- жоқ --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/ko-KR/resources.resjson b/stringResources/ko-KR/resources.resjson index ce71d4a..90bb31e 100644 --- a/stringResources/ko-KR/resources.resjson +++ b/stringResources/ko-KR/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "시간", "Visual_General": "일반", + "Visual_Short_Description": "날짜 필터링에 사용할 그래픽 날짜 범위 선택기입니다.", + "Visual_Long_Description": "시간 표시줄 슬라이서는 Power BI에서 필터링 구성 요소로 사용되는 그래픽 날짜 범위 선택기입니다. 이 슬라이서를 사용하면 날짜 차원별로 데이터를 쉽고 재미있게 필터링할 수 있습니다.\n날짜 범위에 따라 또는 월 또는 분기 같은 상위 수준으로 데이터를 얼마나 자주 필터링해야 하나요? 매시간 필터링해야 하죠? 원하는 범위를 선택하기 위해 많은 날짜를 클릭해야 한다면 필터링이 어려운 작업이 됩니다. 실행 중에 월, 분기, 연도에서 필터 세분성을 변경하는 일은 매우 지루하기까지 합니다. 네, 이전까지는 그랬죠.\n시간 표시줄 슬라이서를 활용하면 이러한 경험이 간단한 일로 바뀔 것입니다. 이 단순한 날짜 슬라이더 컨트롤을 사용할 경우 클릭하여 원하는 날짜로 끌어다 놓기만 하면 됩니다. 또한 연도, 분기 또는 월 보기로 전환하여 날짜보다 훨씬 상위 수준의 범위를 선택할 수도 있습니다.\n슬라이서를 클릭하여 단일 값을 선택할 수도 있고, 모서리를 클릭하고 원하는 범위로 끌어다 놓을 수도 있습니다.\n배경 및 선택한 색상과 그 밖의 다양한 서식 옵션을 변경하여 디자인을 제어할 수도 있습니다. Shift 키를 누른 채로 클릭해도 범위를 선택할 수 있습니다.", "Visual_FiscalYearStart": "회계 연도 시작", + "Visual_FiscalYear": "회계 연도", + "Visual_FiscalYear_Description": "ISO 8601 표준을 선택한 경우 이 옵션은 의미가 없습니다.", "Visual_Month": "월", "Visual_Month_January": "1월", "Visual_Month_February": "2월", @@ -32,6 +36,13 @@ "Visual_Cells": "셀", "Visual_Cell_SelectedColor": "선택한 셀 색", "Visual_Cell_UnselectedColor": "선택 취소한 셀 색", + "Visual_Cell_SelectedStrokeColor": "선택한 셀 스트로크 색", + "Visual_Cell_UnselectedStrokeColor": "선택되지 않은 셀 스트로크 색", + "Visual_Cell_EnableManualSizing": "수동 크기 조정 사용", + "Visual_Cell_Width": "셀 너비", + "Visual_Cell_Height": "셀 높이", + "Visual_Cell_StrokeWidth": "스트로크 너비", + "Visual_Cell_GapWidth": "간격 너비", "Visual_Granularity": "세분성", "Visual_ScaleColor": "눈금 색", "Visual_SliderColor": "슬라이더 색", @@ -43,7 +54,10 @@ "Visual_Labels": "레이블", "Visual_ScaleSizeAdjustment": "눈금 크기 자동 조정", "Visual_FirstDayOfWeek": "시작 요일", + "Visual_FirstDayOfWeek_Description": "ISO 8601 표준을 선택한 경우 이 옵션은 의미가 없습니다.", "Visual_DisplayAll": "모두 표시", + "Visual_Cursor": "커서", + "Visual_CursorColor": "커서 색", "Visual_ForceSelection": "강제로 선택", "Visual_CurrentPeriod": "현재 기간", "Visual_LatestAvailableDate": "최신 버전의 사용 가능한 기간", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "월 표시 여부", "Visual_GranularityWeekVisibility": "주 표시 여부", "Visual_GranularityDayVisibility": "일 표시 여부", - "Timeline_Short_Description": "날짜 필터링에 사용할 그래픽 날짜 범위 선택기입니다.", - "Timeline_Long_Description": "시간 표시줄 슬라이서는 Power BI에서 필터링 구성 요소로 사용되는 그래픽 날짜 범위 선택기입니다. 이 슬라이서를 사용하면 날짜 차원별로 데이터를 쉽고 재미있게 필터링할 수 있습니다.\n날짜 범위에 따라 또는 월 또는 분기 같은 상위 수준으로 데이터를 얼마나 자주 필터링해야 하나요? 매시간 필터링해야 하죠? 원하는 범위를 선택하기 위해 많은 날짜를 클릭해야 한다면 필터링이 어려운 작업이 됩니다. 실행 중에 월, 분기, 연도에서 필터 세분성을 변경하는 일은 매우 지루하기까지 합니다. 네, 이전까지는 그랬죠.\n시간 표시줄 슬라이서를 활용하면 이러한 경험이 간단한 일로 바뀔 것입니다. 이 단순한 날짜 슬라이더 컨트롤을 사용할 경우 클릭하여 원하는 날짜로 끌어다 놓기만 하면 됩니다. 또한 연도, 분기 또는 월 보기로 전환하여 날짜보다 훨씬 상위 수준의 범위를 선택할 수도 있습니다.\n슬라이서를 클릭하여 단일 값을 선택할 수도 있고, 모서리를 클릭하고 원하는 범위로 끌어다 놓을 수도 있습니다.\n배경 및 선택한 색상과 그 밖의 다양한 서식 옵션을 변경하여 디자인을 제어할 수도 있습니다. Shift 키를 누른 채로 클릭해도 범위를 선택할 수 있습니다." + "Visual_Weeks_Determination_Standards": "주 결정 표준", + "Visual_Week_Standard": "표준", + "Visual_Week_Standard_None": "-- 없음 --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/lt-LT/resources.resjson b/stringResources/lt-LT/resources.resjson index a3d1431..551f826 100644 --- a/stringResources/lt-LT/resources.resjson +++ b/stringResources/lt-LT/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Laikas", "Visual_General": "Bendra", + "Visual_Short_Description": "Grafinis datų intervalo išrinkiklis, skirtas naudoti filtruojant datas", + "Visual_Long_Description": "Laiko planavimo juostos pjūvis yra grafinis datų intervalo išrinkiklis, tarnyboje „Power BI“ naudojamas kaip filtravimo komponentas. Jį naudojant duomenis lengva ir smagu filtruoti pagal datos dimensiją.\nKaip dažnai turite filtruoti duomenų intervalo ar aukštesnio lygmens, pvz., mėnesio ar ketvirčio, duomenis? Kiekvieną kartą. Tiesa? Kai, norint pasirinkti norimą intervalą, reikia spustelėti daugybę datų reikšmių, filtravimas yra kančia. Tuo pačiu metu keisti filtrų detalumą (mėnesių, ketvirčių ir metų) yra itin varginantis procesas. Na, tai būdavo labai varginantis procesas.\nLaiko planavimo juostos pjūvis šią operaciją labai supaprastins. Naudojant šį paprastą datų slankiklio valdiklį, tereikia tik spustelėti ir nuvilkti norimą intervalą. Taip pat galite įjungti metų, ketvirčių ar mėnesių rodinį, kad būtų galima pasirinkti aukštesnių nei datos lygmenų intervalus.\nGalite tiesiog spustelėti pjūvį, jei norite pasirinkti vieną reikšmę, arba spustelėti kraštą ir jį nuvilkti iki norimo intervalo.\nTaip pat galite keisti fono ir pasirinkimo spalvą ir daug kitų formatavimo parinkčių bei taip valdyti elemento išvaizdą. Pasirinkti intervalą taip pat galima jį spustelėjant nuspaudus SHIFT.", "Visual_FiscalYearStart": "Finansinių metų pradžia", + "Visual_FiscalYear": "Finansiniai metai", + "Visual_FiscalYear_Description": "Ši parinktis neturi jokios prasmės, jei buvo parinktas ISO 8601 standartas", "Visual_Month": "Mėnuo", "Visual_Month_January": "Sausis", "Visual_Month_February": "Vasaris", @@ -32,6 +36,13 @@ "Visual_Cells": "Langeliai", "Visual_Cell_SelectedColor": "Pasirinkto langelio spalva", "Visual_Cell_UnselectedColor": "Nepasirinkto langelio spalva", + "Visual_Cell_SelectedStrokeColor": "Pasirinkto langelio brūkštelėjimų spalva", + "Visual_Cell_UnselectedStrokeColor": "Nepasirinkta langelio brūkštelėjimų spalva", + "Visual_Cell_EnableManualSizing": "Įgalinti dydžio keitimą rankiniu būdu", + "Visual_Cell_Width": "Langelio plotis", + "Visual_Cell_Height": "Langelio aukštis", + "Visual_Cell_StrokeWidth": "Brūkšnio plotis", + "Visual_Cell_GapWidth": "Tarpo plotis", "Visual_Granularity": "Detalumas", "Visual_ScaleColor": "Mastelio spalva", "Visual_SliderColor": "Slankiklio spalva", @@ -43,7 +54,10 @@ "Visual_Labels": "Žymos", "Visual_ScaleSizeAdjustment": "Automatinis mastelio dydžio koregavimas", "Visual_FirstDayOfWeek": "Pirma savaitės diena", + "Visual_FirstDayOfWeek_Description": "Ši parinktis neturi jokios prasmės, jei buvo parinktas ISO 8601 standartas", "Visual_DisplayAll": "Rodyti viską", + "Visual_Cursor": "Žymiklis", + "Visual_CursorColor": "Žymiklio spalva", "Visual_ForceSelection": "Jėgos pasirinkimas", "Visual_CurrentPeriod": "Dabartinis laikotarpis", "Visual_LatestAvailableDate": "Vėliausias galimas laikotarpis", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Mėnesio matomumas", "Visual_GranularityWeekVisibility": "Savaitės matomumas", "Visual_GranularityDayVisibility": "Dienos matomumas", - "Timeline_Short_Description": "Grafinis datų intervalo išrinkiklis, skirtas naudoti filtruojant datas", - "Timeline_Long_Description": "Laiko planavimo juostos pjūvis yra grafinis datų intervalo išrinkiklis, tarnyboje „Power BI“ naudojamas kaip filtravimo komponentas. Jį naudojant duomenis lengva ir smagu filtruoti pagal datos dimensiją.\nKaip dažnai turite filtruoti duomenų intervalo ar aukštesnio lygmens, pvz., mėnesio ar ketvirčio, duomenis? Kiekvieną kartą. Tiesa? Kai, norint pasirinkti norimą intervalą, reikia spustelėti daugybę datų reikšmių, filtravimas yra kančia. Tuo pačiu metu keisti filtrų detalumą (mėnesių, ketvirčių ir metų) yra itin varginantis procesas. Na, tai būdavo labai varginantis procesas.\nLaiko planavimo juostos pjūvis šią operaciją labai supaprastins. Naudojant šį paprastą datų slankiklio valdiklį, tereikia tik spustelėti ir nuvilkti norimą intervalą. Taip pat galite įjungti metų, ketvirčių ar mėnesių rodinį, kad būtų galima pasirinkti aukštesnių nei datos lygmenų intervalus.\nGalite tiesiog spustelėti pjūvį, jei norite pasirinkti vieną reikšmę, arba spustelėti kraštą ir jį nuvilkti iki norimo intervalo.\nTaip pat galite keisti fono ir pasirinkimo spalvą ir daug kitų formatavimo parinkčių bei taip valdyti elemento išvaizdą. Pasirinkti intervalą taip pat galima jį spustelėjant nuspaudus SHIFT." + "Visual_Weeks_Determination_Standards": "Savaičių nustatymo standartai", + "Visual_Week_Standard": "Standartinis", + "Visual_Week_Standard_None": "-- nėra --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/lv-LV/resources.resjson b/stringResources/lv-LV/resources.resjson index 41bdaf0..8293d40 100644 --- a/stringResources/lv-LV/resources.resjson +++ b/stringResources/lv-LV/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Laiks", "Visual_General": "Vispārīgi", + "Visual_Short_Description": "Grafisks datumu diapazonu atlasītājs datumu filtrēšanai.", + "Visual_Long_Description": "Timeline Slicer ir grafisks datumu diapazonu atlasītājs, ko pakalpojumā Power BI izmanto kā filtrēšanas komponentu. Pateicoties tam, datu filtrēšana pa datumu dimensijām ir vienkārša un aizraujoša.\nCik bieži jums ir jāfiltrē datumu diapazona vai augstāka līmeņa, piemēram, mēneša vai ceturkšņa, dati? Katru reizi. Vai ne? Filtrēšana ir apgrūtinoša, kad ir jānoklikšķina uz liela skaita datumu vērtībām, lai atlasītu vajadzīgo diapazonu. Filtrēšanas granularitātes mainīšana no mēnešiem, ceturkšņiem un gadiem ir ļoti garlaicīga. Tāda tā bija.\nTimeline Slicer datu griezums šo darbību padarīs pavisam ātru un vieglu. Izmantojot šo vienkāršo slīdņa datumu vadīklu, jums ir tikai jānoklikšķina uz vajadzīgā diapazona un jāvelk tas. Varat arī pārslēgties uz skatu Gads, Ceturksnis vai Mēnesis, lai atlasītu par datumiem augstākā līmenī esošus diapazonus.\nVarat vienkārši noklikšķināt uz datu griezuma, lai atlasītu vienu vērtību, vai noklikšķināt uz malas un vilkt to uz vajadzīgo diapazonu.\nVarat arī mainīt fonu un atlases krāsu, kā arī daudzas citas formatēšanas opcijas, lai kontrolētu izskatu un lietošanu. Diapazona atlasei var arī izmantot taustiņu kombināciju SHIFT+klikšķis.", "Visual_FiscalYearStart": "Finanšu gada sākums", + "Visual_FiscalYear": "Finanšu gads", + "Visual_FiscalYear_Description": "Šai opcijai nav jēgas, ja tika atlasīts standarts ISO 8601", "Visual_Month": "Mēnesis", "Visual_Month_January": "janvārī", "Visual_Month_February": "februārī", @@ -32,6 +36,13 @@ "Visual_Cells": "Šūnas", "Visual_Cell_SelectedColor": "Atlasīto šūnu krāsa", "Visual_Cell_UnselectedColor": "Neatlasīto šūnu krāsa", + "Visual_Cell_SelectedStrokeColor": "Atlasītā šūnas vilkuma krāsa", + "Visual_Cell_UnselectedStrokeColor": "Neatlasītā šūnas vilkuma krāsa", + "Visual_Cell_EnableManualSizing": "Iespējot manuālu lieluma maiņu", + "Visual_Cell_Width": "Šūnas platums", + "Visual_Cell_Height": "Šūnas augstums", + "Visual_Cell_StrokeWidth": "Vilkuma platums", + "Visual_Cell_GapWidth": "Atstarpes platums", "Visual_Granularity": "Granularitāte", "Visual_ScaleColor": "Skalas krāsa", "Visual_SliderColor": "Slīdņa krāsa", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiķetes", "Visual_ScaleSizeAdjustment": "Skalas lieluma automātiskā pielāgošana", "Visual_FirstDayOfWeek": "Pirmā nedēļas diena", + "Visual_FirstDayOfWeek_Description": "Šai opcijai nav jēgas, ja tika atlasīts standarts ISO 8601", "Visual_DisplayAll": "Parādīt visu", + "Visual_Cursor": "Kursors", + "Visual_CursorColor": "Kursora krāsa", "Visual_ForceSelection": "Piespiedu atlase", "Visual_CurrentPeriod": "Pašreizējais periods", "Visual_LatestAvailableDate": "Pēdējais pieejamais periods", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Mēneša redzamība", "Visual_GranularityWeekVisibility": "Nedēļas redzamība", "Visual_GranularityDayVisibility": "Dienas redzamība", - "Timeline_Short_Description": "Grafisks datumu diapazonu atlasītājs datumu filtrēšanai.", - "Timeline_Long_Description": "Timeline Slicer ir grafisks datumu diapazonu atlasītājs, ko pakalpojumā Power BI izmanto kā filtrēšanas komponentu. Pateicoties tam, datu filtrēšana pa datumu dimensijām ir vienkārša un aizraujoša.\nCik bieži jums ir jāfiltrē datumu diapazona vai augstāka līmeņa, piemēram, mēneša vai ceturkšņa, dati? Katru reizi. Vai ne? Filtrēšana ir apgrūtinoša, kad ir jānoklikšķina uz liela skaita datumu vērtībām, lai atlasītu vajadzīgo diapazonu. Filtrēšanas granularitātes mainīšana no mēnešiem, ceturkšņiem un gadiem ir ļoti garlaicīga. Tāda tā bija.\nTimeline Slicer datu griezums šo darbību padarīs pavisam ātru un vieglu. Izmantojot šo vienkāršo slīdņa datumu vadīklu, jums ir tikai jānoklikšķina uz vajadzīgā diapazona un jāvelk tas. Varat arī pārslēgties uz skatu Gads, Ceturksnis vai Mēnesis, lai atlasītu par datumiem augstākā līmenī esošus diapazonus.\nVarat vienkārši noklikšķināt uz datu griezuma, lai atlasītu vienu vērtību, vai noklikšķināt uz malas un vilkt to uz vajadzīgo diapazonu.\nVarat arī mainīt fonu un atlases krāsu, kā arī daudzas citas formatēšanas opcijas, lai kontrolētu izskatu un lietošanu. Diapazona atlasei var arī izmantot taustiņu kombināciju SHIFT+klikšķis." + "Visual_Weeks_Determination_Standards": "Nedēļu noteikšanas standarti", + "Visual_Week_Standard": "Standarta", + "Visual_Week_Standard_None": "-- nav --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/ms-MY/resources.resjson b/stringResources/ms-MY/resources.resjson index 48665d7..c0d7bd6 100644 --- a/stringResources/ms-MY/resources.resjson +++ b/stringResources/ms-MY/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Masa", "Visual_General": "Umum", + "Visual_Short_Description": "Pemilih julat tarikh grafik untuk digunakan untuk tarikh penapisan", + "Visual_Long_Description": "Slicer garis masa adalah pemilih jarak tarikh grafik yang digunakan sebagai komponen penapisan di Power BI. Ini menjadikan data penapisan mengikut dimensi tarikh mudah dan menyeronokkan.\nBerapa kerap anda perlu menapis data anda untuk julat tarikh atau pada tahap yang lebih tinggi seperti bulan atau suku? Setiap masa. Betul kan? Penapisan adalah kesakitan apabila anda perlu mengklik melalui sejumlah besar nilai tarikh untuk memilih julat yang anda inginkan. Menukar granulariti penapis dari bulan, kuarters dan tahun dengan cepat adalah sangat membosankan. Nah, ia digunakan untuk menjadi sangat membosankan.\nThe slicer Timeline akan membuat pengalaman ini mudah. Dengan kawalan gelangsar mudah ini untuk tarikh, semua yang perlu anda lakukan, hanya klik dan seret ke julat yang anda inginkan. Anda juga boleh beralih ke paparan Tahun, Suku atau Bulan untuk memilih julat walaupun pada tahap yang lebih tinggi berbanding tarikh.\nAnda boleh klik pada slicer untuk memilih satu nilai atau klik tepi dan seret ke julat yang anda mahu.\nAnda juga boleh menukar warna latar belakang & pilihan dan bilangan pilihan pemformatan lain untuk mengawal rasa n nampak. SHIFT+Klik juga berfungsi untuk memilih julat.", "Visual_FiscalYearStart": "Permulaan Tahun Fiskal", + "Visual_FiscalYear": "Tahun Fiskal", + "Visual_FiscalYear_Description": "Opsyen ini tidak mempunyai peka jika standard ISO 8601 dipilih", "Visual_Month": "Bulan", "Visual_Month_January": "Januari", "Visual_Month_February": "Februari", @@ -32,6 +36,13 @@ "Visual_Cells": "Sel", "Visual_Cell_SelectedColor": "Warna Pilihan", "Visual_Cell_UnselectedColor": "Warna Dinyahpilih", + "Visual_Cell_SelectedStrokeColor": "Warna goresan sel terpilih", + "Visual_Cell_UnselectedStrokeColor": "Warna goresan sel tidak dipilih", + "Visual_Cell_EnableManualSizing": "Dayakan pensaizan manual", + "Visual_Cell_Width": "Lebar sel", + "Visual_Cell_Height": "Tinggi sel", + "Visual_Cell_StrokeWidth": "Lebar goresan", + "Visual_Cell_GapWidth": "Lebar jurang", "Visual_Granularity": "Kebutiran", "Visual_ScaleColor": "Warna Skala", "Visual_SliderColor": "Warna Gelangsar", @@ -43,7 +54,10 @@ "Visual_Labels": "Label", "Visual_ScaleSizeAdjustment": "Penyesuaian otomatis ukuran skala", "Visual_FirstDayOfWeek": "Hari Pertama dalam Minggu", + "Visual_FirstDayOfWeek_Description": "Opsyen ini tidak mempunyai peka jika standard ISO 8601 dipilih", "Visual_DisplayAll": "Paparkan semua", + "Visual_Cursor": "Kursor", + "Visual_CursorColor": "Warna kursor", "Visual_ForceSelection": "Pemilihan paksa", "Visual_CurrentPeriod": "Tempoh semasa", "Visual_LatestAvailableDate": "Tempoh tersedia terkini", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Kebolehlihatan bulan", "Visual_GranularityWeekVisibility": "Kebolehlihatan minggu", "Visual_GranularityDayVisibility": "Kebolehlihatan hari", - "Timeline_Short_Description": "Pemilih julat tarikh grafik untuk digunakan untuk tarikh penapisan", - "Timeline_Long_Description": "Slicer garis masa adalah pemilih jarak tarikh grafik yang digunakan sebagai komponen penapisan di Power BI. Ini menjadikan data penapisan mengikut dimensi tarikh mudah dan menyeronokkan.\nBerapa kerap anda perlu menapis data anda untuk julat tarikh atau pada tahap yang lebih tinggi seperti bulan atau suku? Setiap masa. Betul kan? Penapisan adalah kesakitan apabila anda perlu mengklik melalui sejumlah besar nilai tarikh untuk memilih julat yang anda inginkan. Menukar granulariti penapis dari bulan, kuarters dan tahun dengan cepat adalah sangat membosankan. Nah, ia digunakan untuk menjadi sangat membosankan.\nThe slicer Timeline akan membuat pengalaman ini mudah. Dengan kawalan gelangsar mudah ini untuk tarikh, semua yang perlu anda lakukan, hanya klik dan seret ke julat yang anda inginkan. Anda juga boleh beralih ke paparan Tahun, Suku atau Bulan untuk memilih julat walaupun pada tahap yang lebih tinggi berbanding tarikh.\nAnda boleh klik pada slicer untuk memilih satu nilai atau klik tepi dan seret ke julat yang anda mahu.\nAnda juga boleh menukar warna latar belakang & pilihan dan bilangan pilihan pemformatan lain untuk mengawal rasa n nampak. SHIFT+Klik juga berfungsi untuk memilih julat." + "Visual_Weeks_Determination_Standards": "Piawaian Penentu Minggu", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- tiada --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/nb-NO/resources.resjson b/stringResources/nb-NO/resources.resjson index 3630a00..a41fa15 100644 --- a/stringResources/nb-NO/resources.resjson +++ b/stringResources/nb-NO/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Tid", "Visual_General": "Generelt", + "Visual_Short_Description": "Grafisk valg av datointervall for datofiltrering", + "Visual_Long_Description": "Tidslinje-sliceren er en grafisk datointervallvelger som brukes som en filtreringskomponent i Power BI. Dette gjør det enkelt og morsomt å filtrere data etter datodimensjonen.\nHvor ofte trenger du å filtrere dataene dine for et datointervall, eller for høyere nivåer som en måned eller kvartal? Hver eneste gang, eller hva? Filtrering er noe herk når du må klikke deg gjennom store volum med datoverdier for å velge det ønskede intervallet. Endring av filtreringsdetaljene fra måneder, kvartaler og år i én operasjon, er langtekkelig. Det vil si, det var langtekkelig.\nMed tidslinje-sliceren går det på et blunk. Med denne enkle skyvekontrollen for datoer trenger du bare å klikke og dra til intervallet du ønsker. Du kan også bytte til års-, kvartals- eller månedsvisning slik at du også kan velge intervaller på høyere nivå enn datoer.\nDu kan ganske enkelt klikke på sliceren for å velge en enkeltverdi, eller klikke på kanten og dra den til ønsket intervall.\nDu kan også endre bakgrunns- og valgfarge og flere andre formateringsalternativer for å endre utseendet. SKIFT+klikk kan også brukes til å velge et område.", "Visual_FiscalYearStart": "Start på regnskapsåret", + "Visual_FiscalYear": "Regnskapsår", + "Visual_FiscalYear_Description": "Dette alternativet har ingen mening hvis ISO 8601-standarden ble valgt", "Visual_Month": "Måned", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -32,6 +36,13 @@ "Visual_Cells": "Celler", "Visual_Cell_SelectedColor": "Valgt cellefarge", "Visual_Cell_UnselectedColor": "Farge på umerket celle", + "Visual_Cell_SelectedStrokeColor": "Valgt farge for cellestrøk", + "Visual_Cell_UnselectedStrokeColor": "Fjern valg av farge på cellestrøk", + "Visual_Cell_EnableManualSizing": "Aktiver manuell skalering", + "Visual_Cell_Width": "Cellebredde", + "Visual_Cell_Height": "Cellehøyde", + "Visual_Cell_StrokeWidth": "Bredde på strøk", + "Visual_Cell_GapWidth": "Mellomromsbredde", "Visual_Granularity": "Kornethet", "Visual_ScaleColor": "Skalafarge", "Visual_SliderColor": "Farge på glidebryter", @@ -43,7 +54,10 @@ "Visual_Labels": "Merkelapper", "Visual_ScaleSizeAdjustment": "Automatisk justering av størrelsesskalering", "Visual_FirstDayOfWeek": "Første dag i uken", + "Visual_FirstDayOfWeek_Description": "Dette alternativet har ingen mening hvis ISO 8601-standarden ble valgt", "Visual_DisplayAll": "Vis alle", + "Visual_Cursor": "Markør", + "Visual_CursorColor": "Markørfarge.", "Visual_ForceSelection": "Tving valg", "Visual_CurrentPeriod": "Inneværende periode", "Visual_LatestAvailableDate": "Siste tilgjengelige periode", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Månedsvisning", "Visual_GranularityWeekVisibility": "Ukesvisning", "Visual_GranularityDayVisibility": "Dagsvisning", - "Timeline_Short_Description": "Grafisk valg av datointervall for datofiltrering", - "Timeline_Long_Description": "Tidslinje-sliceren er en grafisk datointervallvelger som brukes som en filtreringskomponent i Power BI. Dette gjør det enkelt og morsomt å filtrere data etter datodimensjonen.\nHvor ofte trenger du å filtrere dataene dine for et datointervall, eller for høyere nivåer som en måned eller kvartal? Hver eneste gang, eller hva? Filtrering er noe herk når du må klikke deg gjennom store volum med datoverdier for å velge det ønskede intervallet. Endring av filtreringsdetaljene fra måneder, kvartaler og år i én operasjon, er langtekkelig. Det vil si, det var langtekkelig.\nMed tidslinje-sliceren går det på et blunk. Med denne enkle skyvekontrollen for datoer trenger du bare å klikke og dra til intervallet du ønsker. Du kan også bytte til års-, kvartals- eller månedsvisning slik at du også kan velge intervaller på høyere nivå enn datoer.\nDu kan ganske enkelt klikke på sliceren for å velge en enkeltverdi, eller klikke på kanten og dra den til ønsket intervall.\nDu kan også endre bakgrunns- og valgfarge og flere andre formateringsalternativer for å endre utseendet. SKIFT+klikk kan også brukes til å velge et område." + "Visual_Weeks_Determination_Standards": "Bestemmelsesstandarder for uker", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- ingen --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/nl-NL/resources.resjson b/stringResources/nl-NL/resources.resjson index 9ae8f16..3c9b9c6 100644 --- a/stringResources/nl-NL/resources.resjson +++ b/stringResources/nl-NL/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Tijd", "Visual_General": "Algemeen", + "Visual_Short_Description": "Grafische selector voor datumbereiken waarmee datums kunnen worden gefilterd", + "Visual_Long_Description": "De tijdlijnslicer is een grafische selector voor datumbereiken die in Power BI wordt gebruikt als een onderdeel voor filteren. Hierdoor wordt het filteren van gegevens op datumdimensie eenvoudig en leuk.\nHoe vaak hebt u uw gegevens moeten filteren voor een datumbereik of op een hoger niveau, zoals maand of kwartaal? Telkens weer. Toch? Filteren kan vervelend zijn wanneer u door een groot aantal datumwaarden moet klikken om het gewenste bereik te selecteren. De filterinstelling veranderen van maanden in kwartalen en jaren kan erg vervelend zijn. Nou ja, kon erg vervelend zijn.\nMet de tijdlijnslicer is dat alles een fluitje van een cent. Met dit eenvoudige slicerbesturingselement voor datums hoeft u alleen maar te klikken en naar het gewenste bereik te slepen. U kunt ook overschakelen naar de weergave voor een jaar, kwartaal of maand om bereiken te selecteren die op een hoger niveau liggen dan datums.\nU kunt gewoon op de slicer klikken om één waarde te selecteren of op de rand klikken en deze naar het gewenste bereik slepen.\nU kunt ook de achtergrond en selectiekleur wijzigen en met een aantal andere opmaakopties het uiterlijk van het diagram aanpassen. Met SHIFT + klikken kunt u ook een bereik selecteren.", "Visual_FiscalYearStart": "Begin van het boekjaar", + "Visual_FiscalYear": "Boekjaar", + "Visual_FiscalYear_Description": "Deze optie heeft geen zin als de ISO 8601-standaard is gekozen", "Visual_Month": "Maand", "Visual_Month_January": "Januari", "Visual_Month_February": "Februari", @@ -32,6 +36,13 @@ "Visual_Cells": "Cellen", "Visual_Cell_SelectedColor": "Kleur van geselecteerde cel", "Visual_Cell_UnselectedColor": "Kleur van niet-geselecteerde cel", + "Visual_Cell_SelectedStrokeColor": "Streekkleur van geselecteerde cel", + "Visual_Cell_UnselectedStrokeColor": "Streekkleur van niet-geselecteerde cel", + "Visual_Cell_EnableManualSizing": "Handmatige formaataanpassing inschakelen", + "Visual_Cell_Width": "Celbreedte", + "Visual_Cell_Height": "Celhoogte", + "Visual_Cell_StrokeWidth": "Streekdikte", + "Visual_Cell_GapWidth": "Breedte van tussenruimte", "Visual_Granularity": "Granulariteit", "Visual_ScaleColor": "Schaalkleur", "Visual_SliderColor": "Kleur van de schuifregelaar", @@ -43,7 +54,10 @@ "Visual_Labels": "Labels", "Visual_ScaleSizeAdjustment": "Automatische aanpassing van schaal", "Visual_FirstDayOfWeek": "Eerste dag van de week", + "Visual_FirstDayOfWeek_Description": "Deze optie heeft geen zin als de ISO 8601-standaard is gekozen", "Visual_DisplayAll": "Alles weergeven", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Cursorkleur", "Visual_ForceSelection": "Selectie forceren", "Visual_CurrentPeriod": "Huidige periode", "Visual_LatestAvailableDate": "Meest recente beschikbare periode", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Weergeven per maand", "Visual_GranularityWeekVisibility": "Weergeven per week", "Visual_GranularityDayVisibility": "Weergeven per dag", - "Timeline_Short_Description": "Grafische selector voor datumbereiken waarmee datums kunnen worden gefilterd", - "Timeline_Long_Description": "De tijdlijnslicer is een grafische selector voor datumbereiken die in Power BI wordt gebruikt als een onderdeel voor filteren. Hierdoor wordt het filteren van gegevens op datumdimensie eenvoudig en leuk.\nHoe vaak hebt u uw gegevens moeten filteren voor een datumbereik of op een hoger niveau, zoals maand of kwartaal? Telkens weer. Toch? Filteren kan vervelend zijn wanneer u door een groot aantal datumwaarden moet klikken om het gewenste bereik te selecteren. De filterinstelling veranderen van maanden in kwartalen en jaren kan erg vervelend zijn. Nou ja, kon erg vervelend zijn.\nMet de tijdlijnslicer is dat alles een fluitje van een cent. Met dit eenvoudige slicerbesturingselement voor datums hoeft u alleen maar te klikken en naar het gewenste bereik te slepen. U kunt ook overschakelen naar de weergave voor een jaar, kwartaal of maand om bereiken te selecteren die op een hoger niveau liggen dan datums.\nU kunt gewoon op de slicer klikken om één waarde te selecteren of op de rand klikken en deze naar het gewenste bereik slepen.\nU kunt ook de achtergrond en selectiekleur wijzigen en met een aantal andere opmaakopties het uiterlijk van het diagram aanpassen. Met SHIFT + klikken kunt u ook een bereik selecteren." + "Visual_Weeks_Determination_Standards": "Standaarden voor weekbepaling", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "--geen--", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/pl-PL/resources.resjson b/stringResources/pl-PL/resources.resjson index 67bf0d9..365ef1c 100644 --- a/stringResources/pl-PL/resources.resjson +++ b/stringResources/pl-PL/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Godzina", "Visual_General": "Ogólne", + "Visual_Short_Description": "Graficzny selektor zakresu dat używany do filtrowania dat", + "Visual_Long_Description": "Fragmentator osi czasu to graficzny selektor zakresu dat używany jako składnik filtrowania w usłudze Power BI. Dzięki niemu filtrowanie danych według wymiaru daty jest łatwe i przyjemne.\nJak często musisz filtrować dane według zakresu dat lub wyższego poziomu, takiego jak miesiąc lub kwartał? Za każdym razem. Prawda? Filtrowanie jest czasochłonne, gdy w celu wybrania zakresu trzeba klikać wiele wartości dat. Zmienianie poziomu szczegółowości z miesięcy, kwartałów i lata na bieżąco jest bardzo niewygodne. Przynajmniej było takie do tej pory.\nFragmentator osi czasu bardzo ułatwi to zadanie. Dzięki tej prostej kontrolce suwaka dat wystarczy kliknąć i przeciągnąć do wybranego zakresu. Można również przełączyć się do widoku roku, kwartału lub miesiąca, aby wybierać zakresy nawet na poziomie wyższym niż daty.\nMożna po prostu kliknąć fragmentator, aby wybrać pojedynczą wartość, lub kliknąć krawędź i przeciągnąć ją do wybranego zakresu.\nMożna również zmienić tło i kolor zaznaczenia oraz inne opcje formatowania w celu kontrolowania wyglądu i sposobu działania. Zakres można również zaznaczyć przez naciśnięcie klawisza SHIFT+kliknięcie.", "Visual_FiscalYearStart": "Początek roku obrachunkowego", + "Visual_FiscalYear": "Rok obrachunkowy", + "Visual_FiscalYear_Description": "Ta opcja nie ma znaczenia, jeśli wybrano standard ISO 8601", "Visual_Month": "Miesiąc", "Visual_Month_January": "styczeń", "Visual_Month_February": "Luty", @@ -32,6 +36,13 @@ "Visual_Cells": "Komórki", "Visual_Cell_SelectedColor": "Kolor zaznaczonej komórki", "Visual_Cell_UnselectedColor": "Kolor niezaznaczonej komórki", + "Visual_Cell_SelectedStrokeColor": "Kolor śladu pędzla wybranej komórki", + "Visual_Cell_UnselectedStrokeColor": "Kolor śladu pędzla niezaznaczonej komórki", + "Visual_Cell_EnableManualSizing": "Włącz ręczne określanie rozmiaru", + "Visual_Cell_Width": "Szerokość komórki", + "Visual_Cell_Height": "Wysokość komórki", + "Visual_Cell_StrokeWidth": "Szerokość pociągnięcia", + "Visual_Cell_GapWidth": "Szerokość odstępu", "Visual_Granularity": "Stopień szczegółowości", "Visual_ScaleColor": "Kolor skali", "Visual_SliderColor": "Kolor suwaka", @@ -43,7 +54,10 @@ "Visual_Labels": "Etykiety", "Visual_ScaleSizeAdjustment": "Automatyczne dopasowanie rozmiaru skali", "Visual_FirstDayOfWeek": "Pierwszy dzień tygodnia", + "Visual_FirstDayOfWeek_Description": "Ta opcja nie ma znaczenia, jeśli wybrano standard ISO 8601", "Visual_DisplayAll": "Wyświetl wszystko", + "Visual_Cursor": "Kursor", + "Visual_CursorColor": "Kolor kursora", "Visual_ForceSelection": "Wymuś wybór", "Visual_CurrentPeriod": "Bieżący okres", "Visual_LatestAvailableDate": "Najnowszy dostępny okres", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Widoczność miesiąca", "Visual_GranularityWeekVisibility": "Widoczność tygodnia", "Visual_GranularityDayVisibility": "Widoczność dnia", - "Timeline_Short_Description": "Graficzny selektor zakresu dat używany do filtrowania dat", - "Timeline_Long_Description": "Fragmentator osi czasu to graficzny selektor zakresu dat używany jako składnik filtrowania w usłudze Power BI. Dzięki niemu filtrowanie danych według wymiaru daty jest łatwe i przyjemne.\nJak często musisz filtrować dane według zakresu dat lub wyższego poziomu, takiego jak miesiąc lub kwartał? Za każdym razem. Prawda? Filtrowanie jest czasochłonne, gdy w celu wybrania zakresu trzeba klikać wiele wartości dat. Zmienianie poziomu szczegółowości z miesięcy, kwartałów i lata na bieżąco jest bardzo niewygodne. Przynajmniej było takie do tej pory.\nFragmentator osi czasu bardzo ułatwi to zadanie. Dzięki tej prostej kontrolce suwaka dat wystarczy kliknąć i przeciągnąć do wybranego zakresu. Można również przełączyć się do widoku roku, kwartału lub miesiąca, aby wybierać zakresy nawet na poziomie wyższym niż daty.\nMożna po prostu kliknąć fragmentator, aby wybrać pojedynczą wartość, lub kliknąć krawędź i przeciągnąć ją do wybranego zakresu.\nMożna również zmienić tło i kolor zaznaczenia oraz inne opcje formatowania w celu kontrolowania wyglądu i sposobu działania. Zakres można również zaznaczyć przez naciśnięcie klawisza SHIFT+kliknięcie." + "Visual_Weeks_Determination_Standards": "Standardy określania tygodni", + "Visual_Week_Standard": "Standardowa", + "Visual_Week_Standard_None": "-- brak --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/pt-BR/resources.resjson b/stringResources/pt-BR/resources.resjson index 14db6e0..44aa76d 100644 --- a/stringResources/pt-BR/resources.resjson +++ b/stringResources/pt-BR/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Hora", "Visual_General": "Geral", + "Visual_Short_Description": "Seletor de intervalo de data gráfico a ser usado para a filtragem de datas", + "Visual_Long_Description": "O segmentador de linha do tempo é um seletor de intervalo de datas gráfico usado como um componente de filtragem no Power BI. Isso torna a filtragem de dados pela dimensão de data simples e divertida.\nCom que frequência você tem que filtrar os dados para um intervalo de datas ou em um nível superior, como no mês ou no trimestre? A cada vez. Certo? A filtragem é problemática quando você tem que clicar em um grande número de valores de data para selecionar o intervalo que você deseja. Alterar a granularidade do filtro de meses, trimestres e anos em tempo real é extremamente entediante. Bem, costumava ser entediante.\nO segmentador de linha do tempo tornará essa experiência muito fácil. Com esse controle deslizante simples para datas, tudo o que você precisa fazer é clicar e arrastar para o intervalo que você deseja. Você também pode alternar para um modo de exibição de Ano, Trimestre ou Mês para selecionar intervalos mesmo em um nível superior ao das datas.\nBasta clicar no segmentador e selecionar um único valor ou clicar na borda e arrastá-la para o intervalo que você deseja.\nVocê também pode alterar a cor de seleção e de tela de fundo, além de diversas outras opções de formatação para controlar a aparência e a funcionalidade. SHIFT + clique também funciona para selecionar um intervalo.", "Visual_FiscalYearStart": "Início do Ano Fiscal", + "Visual_FiscalYear": "Ano Fiscal", + "Visual_FiscalYear_Description": "Esta opção não faz sentido se o padrão ISO 8601 foi escolhido", "Visual_Month": "Mês", "Visual_Month_January": "Janeiro", "Visual_Month_February": "Fevereiro", @@ -32,6 +36,13 @@ "Visual_Cells": "Células", "Visual_Cell_SelectedColor": "Cor da célula selecionada", "Visual_Cell_UnselectedColor": "Cor da célula não selecionada", + "Visual_Cell_SelectedStrokeColor": "Cor do traço da célula selecionada", + "Visual_Cell_UnselectedStrokeColor": "Cor do traço da célula não selecionada", + "Visual_Cell_EnableManualSizing": "Habilitar o dimensionamento manual", + "Visual_Cell_Width": "Largura da célula", + "Visual_Cell_Height": "Altura da célula", + "Visual_Cell_StrokeWidth": "Largura do traço", + "Visual_Cell_GapWidth": "Largura da lacuna", "Visual_Granularity": "Granularidade", "Visual_ScaleColor": "Cor da escala", "Visual_SliderColor": "Cor do controle deslizante", @@ -43,7 +54,10 @@ "Visual_Labels": "Rótulos", "Visual_ScaleSizeAdjustment": "Dimensionar tamanho de ajuste automático", "Visual_FirstDayOfWeek": "Primeiro Dia da Semana", + "Visual_FirstDayOfWeek_Description": "Esta opção não faz sentido se o padrão ISO 8601 foi escolhido", "Visual_DisplayAll": "Exibir todos", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Cor do cursor", "Visual_ForceSelection": "Forçar seleção", "Visual_CurrentPeriod": "Período atual", "Visual_LatestAvailableDate": "Período disponível mais recente", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Visibilidade do mês", "Visual_GranularityWeekVisibility": "Visibilidade da semana", "Visual_GranularityDayVisibility": "Visibilidade do dia", - "Timeline_Short_Description": "Seletor de intervalo de data gráfico a ser usado para a filtragem de datas", - "Timeline_Long_Description": "O segmentador de linha do tempo é um seletor de intervalo de datas gráfico usado como um componente de filtragem no Power BI. Isso torna a filtragem de dados pela dimensão de data simples e divertida.\nCom que frequência você tem que filtrar os dados para um intervalo de datas ou em um nível superior, como no mês ou no trimestre? A cada vez. Certo? A filtragem é problemática quando você tem que clicar em um grande número de valores de data para selecionar o intervalo que você deseja. Alterar a granularidade do filtro de meses, trimestres e anos em tempo real é extremamente entediante. Bem, costumava ser entediante.\nO segmentador de linha do tempo tornará essa experiência muito fácil. Com esse controle deslizante simples para datas, tudo o que você precisa fazer é clicar e arrastar para o intervalo que você deseja. Você também pode alternar para um modo de exibição de Ano, Trimestre ou Mês para selecionar intervalos mesmo em um nível superior ao das datas.\nBasta clicar no segmentador e selecionar um único valor ou clicar na borda e arrastá-la para o intervalo que você deseja.\nVocê também pode alterar a cor de seleção e de tela de fundo, além de diversas outras opções de formatação para controlar a aparência e a funcionalidade. SHIFT + clique também funciona para selecionar um intervalo." + "Visual_Weeks_Determination_Standards": "Padrões de Determinação de Semanas", + "Visual_Week_Standard": "Padrão", + "Visual_Week_Standard_None": "-- Nenhum --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/pt-PT/resources.resjson b/stringResources/pt-PT/resources.resjson index 7a62c89..b26eb9e 100644 --- a/stringResources/pt-PT/resources.resjson +++ b/stringResources/pt-PT/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Hora", "Visual_General": "Geral", + "Visual_Short_Description": "Seletor gráfico de intervalo de datas utilizado para filtragem de datas", + "Visual_Long_Description": "A segmentação de dados de Linha Cronológica é um seletor de intervalo de datas gráfico utilizado como um componente de filtragem no Power BI. Isto faz com que filtrar dados pela dimensão de data seja mais fácil e divertido.\nQuantas vezes tem de filtrar os seus dados por um intervalo de datas ou num nível superior, como mês ou trimestre? Sempre, não é? A filtragem é difícil quando tem de clicar em grandes números de valores de dados para selecionar o intervalo pretendido. A alteração da granularidade do filtro de meses, trimestres e anos instantaneamente é bastante aborrecida. Ou melhor, era.\nA segmentação de dados de Linha Cronológica vai tornar esta experiência muito mais fácil. Com este controlo de deslize simples para datas, basta clicar e arrastar para o intervalo que pretende. Também pode mudar para uma vista de Ano, Trimestre ou Mês para selecionar intervalos num nível superior às datas.\nBasta clicar na segmentação de dados para selecionar um valor único ou clicar na extremidade e arrastá-la para o intervalo que pretende obter.\nTambém pode alterar o fundo e a cor da seleção e o número de outras opções de formatação para controlar o aspeto e sensação. O comando SHIFT + Clique também serve para selecionar um intervalo.", "Visual_FiscalYearStart": "Início do Ano Fiscal", + "Visual_FiscalYear": "Ano Fiscal", + "Visual_FiscalYear_Description": "Esta opção não faz sentido se a norma ISO 8601 tiver sido escolhida", "Visual_Month": "Mês", "Visual_Month_January": "Janeiro", "Visual_Month_February": "Fevereiro", @@ -32,6 +36,13 @@ "Visual_Cells": "Células", "Visual_Cell_SelectedColor": "Cor da célula selecionada", "Visual_Cell_UnselectedColor": "Cor da célula não selecionada", + "Visual_Cell_SelectedStrokeColor": "Cor do traço da célula selecionada", + "Visual_Cell_UnselectedStrokeColor": "Cor do traço da célula desselecionada", + "Visual_Cell_EnableManualSizing": "Ativar dimensionamento manual", + "Visual_Cell_Width": "Largura da célula", + "Visual_Cell_Height": "Altura da célula", + "Visual_Cell_StrokeWidth": "Largura do traço", + "Visual_Cell_GapWidth": "Largura do intervalo", "Visual_Granularity": "Granularidade", "Visual_ScaleColor": "Cor da escala", "Visual_SliderColor": "Cor do controlo de deslize", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiquetas", "Visual_ScaleSizeAdjustment": "Ajuste automático de tamanho da escala ", "Visual_FirstDayOfWeek": "Primeiro Dia da Semana", + "Visual_FirstDayOfWeek_Description": "Esta opção não faz sentido se a norma ISO 8601 tiver sido escolhida", "Visual_DisplayAll": "Mostrar todos", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Cor do cursor", "Visual_ForceSelection": "Forçar seleção", "Visual_CurrentPeriod": "Período atual", "Visual_LatestAvailableDate": "Período mais recente disponível", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Visibilidade de mês", "Visual_GranularityWeekVisibility": "Visibilidade de semana", "Visual_GranularityDayVisibility": "Visibilidade de dias", - "Timeline_Short_Description": "Seletor gráfico de intervalo de datas utilizado para filtragem de datas", - "Timeline_Long_Description": "A segmentação de dados de Linha Cronológica é um seletor de intervalo de datas gráfico utilizado como um componente de filtragem no Power BI. Isto faz com que filtrar dados pela dimensão de data seja mais fácil e divertido.\nQuantas vezes tem de filtrar os seus dados por um intervalo de datas ou num nível superior, como mês ou trimestre? Sempre, não é? A filtragem é difícil quando tem de clicar em grandes números de valores de dados para selecionar o intervalo pretendido. A alteração da granularidade do filtro de meses, trimestres e anos instantaneamente é bastante aborrecida. Ou melhor, era.\nA segmentação de dados de Linha Cronológica vai tornar esta experiência muito mais fácil. Com este controlo de deslize simples para datas, basta clicar e arrastar para o intervalo que pretende. Também pode mudar para uma vista de Ano, Trimestre ou Mês para selecionar intervalos num nível superior às datas.\nBasta clicar na segmentação de dados para selecionar um valor único ou clicar na extremidade e arrastá-la para o intervalo que pretende obter.\nTambém pode alterar o fundo e a cor da seleção e o número de outras opções de formatação para controlar o aspeto e sensação. O comando SHIFT + Clique também serve para selecionar um intervalo." + "Visual_Weeks_Determination_Standards": "Normas de Determinação de Semanas", + "Visual_Week_Standard": "Norma", + "Visual_Week_Standard_None": "-- nenhuma --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/ro-RO/resources.resjson b/stringResources/ro-RO/resources.resjson index 74cddb5..91ff7e2 100644 --- a/stringResources/ro-RO/resources.resjson +++ b/stringResources/ro-RO/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Ora", "Visual_General": "General", + "Visual_Short_Description": "Selectorul de interval de date grafice de utilizat pentru filtrarea datelor", + "Visual_Long_Description": "Slicerul Cronologie este un selector de interval de date grafic utilizat pe post de componentă de filtrare în Power BI. Acest lucru face simplă și distractivă filtrarea datelor după dimensiune.\nCât de des trebuie să vă filtrați datele după un interval de date sau după un nivel superior, cum ar fi o lună sau un trimestru? De fiecare dată. Nu-i așa? Filtrarea este un chin atunci când trebuie să faceți clic prin multe valori dată calendaristică pentru a selecta intervalul dorit. Modificarea rapidă a granularității de filtrare în luni, trimestre și ani poate fi extrem de dificilă. Ei bine, acest lucru este de domeniul trecutului.\nSlicerul Cronologie va simplifica semnificativ această experiență. Cu acest control simplu de cursor pentru date, nu trebuie decât să faceți clic și să glisați la intervalul pe care îl doriți. De asemenea, puteți comuta la o vizualizare An, Trimestru sau Lună, pentru a selecta intervale la un nivel și mai mare decât datele.\nFaceți clic pur și simplu pe slicer pentru a selecta o singură valoare sau faceți clic pe margine și glisați-o la intervalul dorit.\nDe asemenea, puteți modifica fundalul și culoarea selecției, precum și alte opțiuni de formatare, pentru a controla aspectul și stilul. SHIFT+clic funcționează și pentru a selecta un interval.", "Visual_FiscalYearStart": "Început an financiar", + "Visual_FiscalYear": "An fiscal", + "Visual_FiscalYear_Description": "Această opțiune nu are sens dacă a fost selectat standardul ISO 8601", "Visual_Month": "Lună", "Visual_Month_January": "Ianuarie", "Visual_Month_February": "Februarie", @@ -32,6 +36,13 @@ "Visual_Cells": "Celule", "Visual_Cell_SelectedColor": "Culoare celulă selectată", "Visual_Cell_UnselectedColor": "Culoare celulă neselectată", + "Visual_Cell_SelectedStrokeColor": "Culoarea conturului celulei selectată", + "Visual_Cell_UnselectedStrokeColor": "Culoarea conturului celulei deselectată", + "Visual_Cell_EnableManualSizing": "Activați dimensionarea manuală", + "Visual_Cell_Width": "Lățimea celulei", + "Visual_Cell_Height": "Înălțimea celulei", + "Visual_Cell_StrokeWidth": "Lățime de bară", + "Visual_Cell_GapWidth": "Lățimea spațiului liber", "Visual_Granularity": "Granularitate", "Visual_ScaleColor": "Culoare scară", "Visual_SliderColor": "Culoare cursor", @@ -43,7 +54,10 @@ "Visual_Labels": "Etichete", "Visual_ScaleSizeAdjustment": "Ajustare automată dimensiune scară", "Visual_FirstDayOfWeek": "Prima zi a săptămânii", + "Visual_FirstDayOfWeek_Description": "Această opțiune nu are sens dacă a fost selectat standardul ISO 8601", "Visual_DisplayAll": "Afișare totală", + "Visual_Cursor": "Cursor", + "Visual_CursorColor": "Culoarea cursorului", "Visual_ForceSelection": "Forțați selecția", "Visual_CurrentPeriod": "Perioada curentă", "Visual_LatestAvailableDate": "Cea mai recentă perioadă disponibilă", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Vizibilitate lună", "Visual_GranularityWeekVisibility": "Vizibilitate săptămână", "Visual_GranularityDayVisibility": "Vizibilitate zi", - "Timeline_Short_Description": "Selectorul de interval de date grafice de utilizat pentru filtrarea datelor", - "Timeline_Long_Description": "Slicerul Cronologie este un selector de interval de date grafic utilizat pe post de componentă de filtrare în Power BI. Acest lucru face simplă și distractivă filtrarea datelor după dimensiune.\nCât de des trebuie să vă filtrați datele după un interval de date sau după un nivel superior, cum ar fi o lună sau un trimestru? De fiecare dată. Nu-i așa? Filtrarea este un chin atunci când trebuie să faceți clic prin multe valori dată calendaristică pentru a selecta intervalul dorit. Modificarea rapidă a granularității de filtrare în luni, trimestre și ani poate fi extrem de dificilă. Ei bine, acest lucru este de domeniul trecutului.\nSlicerul Cronologie va simplifica semnificativ această experiență. Cu acest control simplu de cursor pentru date, nu trebuie decât să faceți clic și să glisați la intervalul pe care îl doriți. De asemenea, puteți comuta la o vizualizare An, Trimestru sau Lună, pentru a selecta intervale la un nivel și mai mare decât datele.\nFaceți clic pur și simplu pe slicer pentru a selecta o singură valoare sau faceți clic pe margine și glisați-o la intervalul dorit.\nDe asemenea, puteți modifica fundalul și culoarea selecției, precum și alte opțiuni de formatare, pentru a controla aspectul și stilul. SHIFT+clic funcționează și pentru a selecta un interval." + "Visual_Weeks_Determination_Standards": "Standarde de determinare a săptămânilor", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "--nici unul--", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/ru-RU/resources.resjson b/stringResources/ru-RU/resources.resjson index a1099d1..e0adcbf 100644 --- a/stringResources/ru-RU/resources.resjson +++ b/stringResources/ru-RU/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Время", "Visual_General": "Общие", + "Visual_Short_Description": "Графическое средство выбора диапазона дат для фильтрации", + "Visual_Long_Description": "Срез временной шкалы — это графическое средство выбора диапазона дат, которое используется для фильтрации в Power BI. Оно упрощает и делает интереснее фильтрацию данных по датам.\nКак часто вам приходится отфильтровывать данные по диапазону дат или за более длительный промежуток времени, например месяц или квартал? Слишком часто, не правда ли? Фильтрация приносит неудобства, когда нужно перещелкивать большое количество дат, чтобы выбрать нужный диапазон. Переключать на ходу степень детализации между месяцем, кварталом и годом утомительно. Но теперь это не так.\nСрез временной шкалы упростит эту функцию. Вам нужно всего лишь перетащить ползунок на нужный диапазон. Вы можете также переключиться на представление года, квартала или месяца, чтобы выбрать диапазоны более высокого уровня, чем даты.\nПросто щелкните ползунок, чтобы выбрать одно значение, или щелкните край шкалы и перетащите на нужный диапазон.\nВы можете также изменить цвет фона и выделения, настроить ряд других параметров форматирования для персонализации. Диапазон еще можно выбрать с помощью комбинации SHIFT+щелчок.", "Visual_FiscalYearStart": "Начало финансового года", + "Visual_FiscalYear": "Финансовый год", + "Visual_FiscalYear_Description": "Этот параметр не имеет смысла, если выбран стандарт ISO 8601", "Visual_Month": "Месяц", "Visual_Month_January": "Январь", "Visual_Month_February": "Февраль", @@ -32,6 +36,13 @@ "Visual_Cells": "Ячейки", "Visual_Cell_SelectedColor": "Цвет выбранной ячейки", "Visual_Cell_UnselectedColor": "Цвет невыбранной ячейки", + "Visual_Cell_SelectedStrokeColor": "Цвет штриха выбранной ячейки", + "Visual_Cell_UnselectedStrokeColor": "Цвет штриха ячейки, выделение которой отменено", + "Visual_Cell_EnableManualSizing": "Включить изменение размера вручную", + "Visual_Cell_Width": "Ширина ячейки", + "Visual_Cell_Height": "Высота ячейки", + "Visual_Cell_StrokeWidth": "Ширина штриха", + "Visual_Cell_GapWidth": "Ширина зазора", "Visual_Granularity": "Детализация", "Visual_ScaleColor": "Цвет шкалы", "Visual_SliderColor": "Цвет ползунка", @@ -43,7 +54,10 @@ "Visual_Labels": "Метки", "Visual_ScaleSizeAdjustment": "Автоматическая настройка масштаба", "Visual_FirstDayOfWeek": "Первый день недели", + "Visual_FirstDayOfWeek_Description": "Этот параметр не имеет смысла, если выбран стандарт ISO 8601", "Visual_DisplayAll": "Показать все", + "Visual_Cursor": "Курсор", + "Visual_CursorColor": "Цвет курсора", "Visual_ForceSelection": "Принудительный выбор", "Visual_CurrentPeriod": "Текущий период", "Visual_LatestAvailableDate": "Последний доступный период", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Видимость: месяц", "Visual_GranularityWeekVisibility": "Видимость: неделя", "Visual_GranularityDayVisibility": "Видимость: день", - "Timeline_Short_Description": "Графическое средство выбора диапазона дат для фильтрации", - "Timeline_Long_Description": "Срез временной шкалы — это графическое средство выбора диапазона дат, которое используется для фильтрации в Power BI. Оно упрощает и делает интереснее фильтрацию данных по датам.\nКак часто вам приходится отфильтровывать данные по диапазону дат или за более длительный промежуток времени, например месяц или квартал? Слишком часто, не правда ли? Фильтрация приносит неудобства, когда нужно перещелкивать большое количество дат, чтобы выбрать нужный диапазон. Переключать на ходу степень детализации между месяцем, кварталом и годом утомительно. Но теперь это не так.\nСрез временной шкалы упростит эту функцию. Вам нужно всего лишь перетащить ползунок на нужный диапазон. Вы можете также переключиться на представление года, квартала или месяца, чтобы выбрать диапазоны более высокого уровня, чем даты.\nПросто щелкните ползунок, чтобы выбрать одно значение, или щелкните край шкалы и перетащите на нужный диапазон.\nВы можете также изменить цвет фона и выделения, настроить ряд других параметров форматирования для персонализации. Диапазон еще можно выбрать с помощью комбинации SHIFT+щелчок." + "Visual_Weeks_Determination_Standards": "Стандарты достоверности по неделям", + "Visual_Week_Standard": "Стандарт", + "Visual_Week_Standard_None": "-- нет --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/sk-SK/resources.resjson b/stringResources/sk-SK/resources.resjson index f0ac242..29de86b 100644 --- a/stringResources/sk-SK/resources.resjson +++ b/stringResources/sk-SK/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Čas", "Visual_General": "Všeobecné", + "Visual_Short_Description": "Nástroj na grafický výber rozsahu dátumov používaný na filtrovanie dátumov", + "Visual_Long_Description": "Rýchly filter časovej osi je nástroj na grafický výber rozsahu dátumov používaný ako súčasť filtrovania v službe Power BI. Umožňuje jednoduché a zábavné filtrovanie údajov podľa dátumu.\nAko často musíte v údajoch filtrovať rozsah dátumov alebo vyššiu úroveň, napríklad mesiac alebo štvrťrok? Zakaždým, však? Filtrovanie je vždy náročné, keď musíte kliknúť na veľké počty hodnôt dátumu a vybrať požadovaný rozsah. Zmena granularity filtra z mesiacov, štvrťrokov a rokov za chodu je veľmi zdĺhavá. Vlastne bývala veľmi zdĺhavá.\nS rýchlym filtrom časovej osi je takéto filtrovanie hračkou. Vďaka jednoduchému ovládaciemu prvku posúvača na nastavenie dátumov stačí len kliknúť a potiahnutím myšou nastaviť požadovaný rozsah. Zobrazenie môžete tiež prepnúť na zobrazenie Rok, Štvrťrok alebo Mesiac, aby ste vybrali rozsahy aj na vyššej úrovni, ako sú dátumy.\nMôžete jednoducho kliknúť na rýchly filter a vybrať jednu hodnotu, alebo môžete kliknúť na okraj a potiahnuť ho myšou tak, aby ste vybrali požadovaný rozsah.\nMôžete tiež zmeniť farbu pozadia a výberu a použiť množstvo ďalších možností formátovania na ovládanie vzhľadu. Pri výbere rozsahu funguje tiež podržanie klávesu Shift a klikanie myšou.", "Visual_FiscalYearStart": "Začiatok fiškálneho roka", + "Visual_FiscalYear": "Fiškálny rok", + "Visual_FiscalYear_Description": "Táto možnosť nemá zmysel, ak bol vybratý štandard ISO 8601", "Visual_Month": "Mesiac", "Visual_Month_January": "január", "Visual_Month_February": "február", @@ -32,6 +36,13 @@ "Visual_Cells": "Bunky", "Visual_Cell_SelectedColor": "Farba vybratej bunky", "Visual_Cell_UnselectedColor": "Farba nevybratej bunky", + "Visual_Cell_SelectedStrokeColor": "Farba ťahu vybratej bunky", + "Visual_Cell_UnselectedStrokeColor": "Farba ťahu nevybratej bunky", + "Visual_Cell_EnableManualSizing": "Povoliť manuálnu zmenu veľkosti", + "Visual_Cell_Width": "Šírka bunky", + "Visual_Cell_Height": "Výška bunky", + "Visual_Cell_StrokeWidth": "Šírka ťahu", + "Visual_Cell_GapWidth": "Šírka medzery", "Visual_Granularity": "Granularita", "Visual_ScaleColor": "Farba mierky", "Visual_SliderColor": "Farba jazdca", @@ -43,7 +54,10 @@ "Visual_Labels": "Označenia", "Visual_ScaleSizeAdjustment": "Automatické prispôsobenie veľkosti mierky", "Visual_FirstDayOfWeek": "Prvý deň v týždni", + "Visual_FirstDayOfWeek_Description": "Táto možnosť nemá zmysel, ak bol vybratý štandard ISO 8601", "Visual_DisplayAll": "Zobraziť všetko", + "Visual_Cursor": "Kurzor", + "Visual_CursorColor": "Farba kurzora", "Visual_ForceSelection": "Vynútiť výber", "Visual_CurrentPeriod": "Aktuálne obdobie", "Visual_LatestAvailableDate": "Najnovšie dostupné obdobie", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Viditeľnosť za mesiac", "Visual_GranularityWeekVisibility": "Viditeľnosť za týždeň", "Visual_GranularityDayVisibility": "Viditeľnosť za deň", - "Timeline_Short_Description": "Nástroj na grafický výber rozsahu dátumov používaný na filtrovanie dátumov", - "Timeline_Long_Description": "Rýchly filter časovej osi je nástroj na grafický výber rozsahu dátumov používaný ako súčasť filtrovania v službe Power BI. Umožňuje jednoduché a zábavné filtrovanie údajov podľa dátumu.\nAko často musíte v údajoch filtrovať rozsah dátumov alebo vyššiu úroveň, napríklad mesiac alebo štvrťrok? Zakaždým, však? Filtrovanie je vždy náročné, keď musíte kliknúť na veľké počty hodnôt dátumu a vybrať požadovaný rozsah. Zmena granularity filtra z mesiacov, štvrťrokov a rokov za chodu je veľmi zdĺhavá. Vlastne bývala veľmi zdĺhavá.\nS rýchlym filtrom časovej osi je takéto filtrovanie hračkou. Vďaka jednoduchému ovládaciemu prvku posúvača na nastavenie dátumov stačí len kliknúť a potiahnutím myšou nastaviť požadovaný rozsah. Zobrazenie môžete tiež prepnúť na zobrazenie Rok, Štvrťrok alebo Mesiac, aby ste vybrali rozsahy aj na vyššej úrovni, ako sú dátumy.\nMôžete jednoducho kliknúť na rýchly filter a vybrať jednu hodnotu, alebo môžete kliknúť na okraj a potiahnuť ho myšou tak, aby ste vybrali požadovaný rozsah.\nMôžete tiež zmeniť farbu pozadia a výberu a použiť množstvo ďalších možností formátovania na ovládanie vzhľadu. Pri výbere rozsahu funguje tiež podržanie klávesu Shift a klikanie myšou." + "Visual_Weeks_Determination_Standards": "Štandardy určovania týždňov", + "Visual_Week_Standard": "Štandard", + "Visual_Week_Standard_None": "-- žiadne --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/sl-SI/resources.resjson b/stringResources/sl-SI/resources.resjson index 82b6ed8..07f25b4 100644 --- a/stringResources/sl-SI/resources.resjson +++ b/stringResources/sl-SI/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Ura", "Visual_General": "Splošno", + "Visual_Short_Description": "Izbirnik grafičnega prikaza datumskega obsega za filtriranje datumov", + "Visual_Long_Description": "Razčlenjevalnik časovnice je izbirnik grafičnega prikaza datumskega obsega, ki se uporablja za filtriranje komponente v storitvi Power BI. S tem postane filtriranje podatkov po časovni dimenziji preprosto in zabavno.\nKako pogosto morate filtrirati podatke po datumskem obsegu ali po mesecu oz. četrtletju? Vedno znova? Filtriranje je lahko zamudno, ko morate klikati številne datumske vrednosti, da izberete želeni datumski obseg. Sprotno spreminjanje zrnatosti filtra za mesece, četrtletja in leta je lahko izjemno utrujajoče. No, vsaj bilo je utrujajoče.\nRazčlenjevalnik časovnice bo to izkušnjo povsem poenostavil. S tem preprostim kontrolnikom drsnika za datume morate samo klikniti in povleči v želeni obseg. Preklopite lahko tudi na leto, četrtletje ali mesec, tako da izberete obsege, ki so večji od datumov.\nPreprosto kliknite razčlenjevalnik, da izberete eno vrednost, ali pa kliknite rok in ga povlecite v želeni obseg.\nSpremenite lahko tudi barvo ozadja in izbora ter številne druge možnosti oblikovanja, s katerimi nadzirate videz in delovanje. Obseg lahko izberete tudi s tipko SHIFT+klikom.", "Visual_FiscalYearStart": "Začetek poslovnega leta", + "Visual_FiscalYear": "Poslovno leto", + "Visual_FiscalYear_Description": "Ta možnost nima smisla, če je bil izbran standard ISO 8601.", "Visual_Month": "Mesec", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -32,6 +36,13 @@ "Visual_Cells": "Celice", "Visual_Cell_SelectedColor": "Barvi izbrane celice", "Visual_Cell_UnselectedColor": "Barvo neizbrani celice", + "Visual_Cell_SelectedStrokeColor": "Barva poteze izbrane celice", + "Visual_Cell_UnselectedStrokeColor": "Barva poteze neizbrane celice", + "Visual_Cell_EnableManualSizing": "Omogoči ročno spreminjanje velikosti", + "Visual_Cell_Width": "Širina celice", + "Visual_Cell_Height": "Višina celice", + "Visual_Cell_StrokeWidth": "Širina poteze", + "Visual_Cell_GapWidth": "Širina vrzeli", "Visual_Granularity": "Granularnost", "Visual_ScaleColor": "Barva merila", "Visual_SliderColor": "Barva drsnika", @@ -43,7 +54,10 @@ "Visual_Labels": "Oznake", "Visual_ScaleSizeAdjustment": "Lestvica velikosti avto obračun", "Visual_FirstDayOfWeek": "Prvi dan v tednu", + "Visual_FirstDayOfWeek_Description": "Ta možnost nima smisla, če je bil izbran standard ISO 8601.", "Visual_DisplayAll": "Prikaži vse", + "Visual_Cursor": "Kazalka", + "Visual_CursorColor": "Barva kazalke", "Visual_ForceSelection": "Vsili izbor", "Visual_CurrentPeriod": "Trenutno obdobje", "Visual_LatestAvailableDate": "Zadnje razpoložljivo obdobje", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Vidljivost meseca", "Visual_GranularityWeekVisibility": "Vidljivost tedna", "Visual_GranularityDayVisibility": "Vidljivost dneva", - "Timeline_Short_Description": "Izbirnik grafičnega prikaza datumskega obsega za filtriranje datumov", - "Timeline_Long_Description": "Razčlenjevalnik časovnice je izbirnik grafičnega prikaza datumskega obsega, ki se uporablja za filtriranje komponente v storitvi Power BI. S tem postane filtriranje podatkov po časovni dimenziji preprosto in zabavno.\nKako pogosto morate filtrirati podatke po datumskem obsegu ali po mesecu oz. četrtletju? Vedno znova? Filtriranje je lahko zamudno, ko morate klikati številne datumske vrednosti, da izberete želeni datumski obseg. Sprotno spreminjanje zrnatosti filtra za mesece, četrtletja in leta je lahko izjemno utrujajoče. No, vsaj bilo je utrujajoče.\nRazčlenjevalnik časovnice bo to izkušnjo povsem poenostavil. S tem preprostim kontrolnikom drsnika za datume morate samo klikniti in povleči v želeni obseg. Preklopite lahko tudi na leto, četrtletje ali mesec, tako da izberete obsege, ki so večji od datumov.\nPreprosto kliknite razčlenjevalnik, da izberete eno vrednost, ali pa kliknite rok in ga povlecite v želeni obseg.\nSpremenite lahko tudi barvo ozadja in izbora ter številne druge možnosti oblikovanja, s katerimi nadzirate videz in delovanje. Obseg lahko izberete tudi s tipko SHIFT+klikom." + "Visual_Weeks_Determination_Standards": "Standardi določanja tednov", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- brez --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/sr-Cyrl-RS/resources.resjson b/stringResources/sr-Cyrl-RS/resources.resjson index d3ec87b..6c3f1f9 100644 --- a/stringResources/sr-Cyrl-RS/resources.resjson +++ b/stringResources/sr-Cyrl-RS/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Време", "Visual_General": "Опште", + "Visual_Short_Description": "Графички бирач опсега датума који се користи за филтрирање датума", + "Visual_Long_Description": "Сегментатор „Временска оса“ представља графички бирач опсега датума, који се користи као компонента за филтрирање у услузи Power BI. Ово чини филтрирање података по димензији датума једноставним и забавним.\nКолико често морате да филтрирате податке за опсег датума или на вишем нивоу као што је месечни или квартални? Сваки пут. Зар не? Филтрирање је напорно ако морате да кликћете кроз велики број вредности датума да бисте изабрали жељени опсег. Промена грануларности филтера из месеци, квартала и година на брзину изузетно је заморна. Е па, била је изузетно заморна.\nСегментатор „Временска оса“ ће знатно олакшати ово искуство. Уз ову једноставну контролу сегментатора за датума, све што треба да урадите јесте да кликнете и превучете на жељени опсег. Такође можете да се пребаците на годишњи, квартални или месечни приказ да бисте изабрали опсег на још вишем нивоу од датума.\nМожете једноставно да кликнете на сегментатор да бисте изабрали једну вредност, односно кликнете на ивицу и превучете је на жељени опсег.\nТакође можете да промените боју позадине и избора, као и разне друге опције обликовања за контролу изгледа и доживљаја. SHIFT+клик такође функционишу за избор опсега.", "Visual_FiscalYearStart": "Почетак фискалне године", + "Visual_FiscalYear": "Фискална година", + "Visual_FiscalYear_Description": "Ова опција нема смисла ако је изабран ISO 8601 стандард", "Visual_Month": "Месец", "Visual_Month_January": "Јануар", "Visual_Month_February": "Фебруар", @@ -32,6 +36,13 @@ "Visual_Cells": "Ћелије", "Visual_Cell_SelectedColor": "Боја изабране ћелије", "Visual_Cell_UnselectedColor": "Боја неизабране ћелије", + "Visual_Cell_SelectedStrokeColor": "Изабрана боја потеза ћелије", + "Visual_Cell_UnselectedStrokeColor": "Неизабрана боја потеза ћелије", + "Visual_Cell_EnableManualSizing": "Омогући ручно подешавање величине", + "Visual_Cell_Width": "Ширина ћелије", + "Visual_Cell_Height": "Висина ћелије", + "Visual_Cell_StrokeWidth": "Ширина потеза", + "Visual_Cell_GapWidth": "Ширина размака", "Visual_Granularity": "Грануларност", "Visual_ScaleColor": "Боја скале", "Visual_SliderColor": "Боја клизача", @@ -43,7 +54,10 @@ "Visual_Labels": "Ознаке", "Visual_ScaleSizeAdjustment": "Аутоматско прилагођавање величине скале", "Visual_FirstDayOfWeek": "Први дан у седмици", + "Visual_FirstDayOfWeek_Description": "Ова опција нема смисла ако је изабран ISO 8601 стандард", "Visual_DisplayAll": "Прикажи све", + "Visual_Cursor": "Курсор", + "Visual_CursorColor": "Боја курсора", "Visual_ForceSelection": "Наметни избор", "Visual_CurrentPeriod": "Тренутни период", "Visual_LatestAvailableDate": "Последњи доступни период", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Видљивост месеца", "Visual_GranularityWeekVisibility": "Видљивост седмице", "Visual_GranularityDayVisibility": "Видљивост дана", - "Timeline_Short_Description": "Графички бирач опсега датума који се користи за филтрирање датума", - "Timeline_Long_Description": "Сегментатор „Временска оса“ представља графички бирач опсега датума, који се користи као компонента за филтрирање у услузи Power BI. Ово чини филтрирање података по димензији датума једноставним и забавним.\nКолико често морате да филтрирате податке за опсег датума или на вишем нивоу као што је месечни или квартални? Сваки пут. Зар не? Филтрирање је напорно ако морате да кликћете кроз велики број вредности датума да бисте изабрали жељени опсег. Промена грануларности филтера из месеци, квартала и година на брзину изузетно је заморна. Е па, била је изузетно заморна.\nСегментатор „Временска оса“ ће знатно олакшати ово искуство. Уз ову једноставну контролу сегментатора за датума, све што треба да урадите јесте да кликнете и превучете на жељени опсег. Такође можете да се пребаците на годишњи, квартални или месечни приказ да бисте изабрали опсег на још вишем нивоу од датума.\nМожете једноставно да кликнете на сегментатор да бисте изабрали једну вредност, односно кликнете на ивицу и превучете је на жељени опсег.\nТакође можете да промените боју позадине и избора, као и разне друге опције обликовања за контролу изгледа и доживљаја. SHIFT+клик такође функционишу за избор опсега." + "Visual_Weeks_Determination_Standards": "Стандарди за одређивање седмица", + "Visual_Week_Standard": "Стандард", + "Visual_Week_Standard_None": "-- ништа --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/sr-Latn-RS/resources.resjson b/stringResources/sr-Latn-RS/resources.resjson index 273cbe7..2e629e6 100644 --- a/stringResources/sr-Latn-RS/resources.resjson +++ b/stringResources/sr-Latn-RS/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Vreme", "Visual_General": "Opšte", + "Visual_Short_Description": "Grafički birač opsega datuma koji se koristi za filtriranje datuma", + "Visual_Long_Description": "Segmentator „Vremenska osa“ predstavlja grafički birač opsega datuma, koji se koristi kao komponenta za filtriranje u usluzi Power BI. Ovo čini filtriranje podataka po dimenziji datuma jednostavnim i zabavnim.\nKoliko često morate da filtrirate podatke za opseg datuma ili na višem nivou kao što je mesečni ili kvartalni? Svaki put. Zar ne? Filtriranje je naporno ako morate da klikćete kroz veliki broj vrednosti datuma da biste izabrali željeni opseg. Promena granularnosti filtera iz meseci, kvartala i godina na brzinu izuzetno je zamorna. E pa, bila je izuzetno zamorna.\nSegmentator „Vremenska osa“ će znatno olakšati ovo iskustvo. Uz ovu jednostavnu kontrolu segmentatora za datuma, sve što treba da uradite jeste da kliknete i prevučete na željeni opseg. Takođe možete da se prebacite na godišnji, kvartalni ili mesečni prikaz da biste izabrali opseg na još višem nivou od datuma.\nMožete jednostavno da kliknete na segmentator da biste izabrali jednu vrednost, odnosno kliknete na ivicu i prevučete je na željeni opseg.\nTakođe možete da promenite boju pozadine i izbora, kao i razne druge opcije oblikovanja za kontrolu izgleda i doživljaja. SHIFT+klik takođe funkcionišu za izbor opsega.", "Visual_FiscalYearStart": "Početak fiskalne godine", + "Visual_FiscalYear": "Fiskalna godina", + "Visual_FiscalYear_Description": "Ova opcija nema smisla ako je izabran ISO 8601 standard", "Visual_Month": "Mesec", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -32,6 +36,13 @@ "Visual_Cells": "Ćelije", "Visual_Cell_SelectedColor": "Boja izabrane ćelije", "Visual_Cell_UnselectedColor": "Boja neizabrane ćelije", + "Visual_Cell_SelectedStrokeColor": "Izabrana boja poteza ćelije", + "Visual_Cell_UnselectedStrokeColor": "Nije izabrana boja poteza ćelije", + "Visual_Cell_EnableManualSizing": "Omogući ručno podešavanje veličine", + "Visual_Cell_Width": "Širina ćelije", + "Visual_Cell_Height": "Visina ćelije", + "Visual_Cell_StrokeWidth": "Širina poteza", + "Visual_Cell_GapWidth": "Širina razmaka", "Visual_Granularity": "Granularnost", "Visual_ScaleColor": "Boja skale", "Visual_SliderColor": "Boja klizača", @@ -43,7 +54,10 @@ "Visual_Labels": "Oznake", "Visual_ScaleSizeAdjustment": "Automatsko prilagođavanje veličine skale", "Visual_FirstDayOfWeek": "Prvi dan u sedmici", + "Visual_FirstDayOfWeek_Description": "Ova opcija nema smisla ako je izabran ISO 8601 standard", "Visual_DisplayAll": "Prikaži sve", + "Visual_Cursor": "Kursor", + "Visual_CursorColor": "Boja kursora", "Visual_ForceSelection": "Nametni izbor", "Visual_CurrentPeriod": "Trenutni period", "Visual_LatestAvailableDate": "Poslednji dostupni period", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Mesečna vidljivost", "Visual_GranularityWeekVisibility": "Sedmična vidljivost", "Visual_GranularityDayVisibility": "Dnevna vidljivost", - "Timeline_Short_Description": "Grafički birač opsega datuma koji se koristi za filtriranje datuma", - "Timeline_Long_Description": "Segmentator „Vremenska osa“ predstavlja grafički birač opsega datuma, koji se koristi kao komponenta za filtriranje u usluzi Power BI. Ovo čini filtriranje podataka po dimenziji datuma jednostavnim i zabavnim.\nKoliko često morate da filtrirate podatke za opseg datuma ili na višem nivou kao što je mesečni ili kvartalni? Svaki put. Zar ne? Filtriranje je naporno ako morate da klikćete kroz veliki broj vrednosti datuma da biste izabrali željeni opseg. Promena granularnosti filtera iz meseci, kvartala i godina na brzinu izuzetno je zamorna. E pa, bila je izuzetno zamorna.\nSegmentator „Vremenska osa“ će znatno olakšati ovo iskustvo. Uz ovu jednostavnu kontrolu segmentatora za datuma, sve što treba da uradite jeste da kliknete i prevučete na željeni opseg. Takođe možete da se prebacite na godišnji, kvartalni ili mesečni prikaz da biste izabrali opseg na još višem nivou od datuma.\nMožete jednostavno da kliknete na segmentator da biste izabrali jednu vrednost, odnosno kliknete na ivicu i prevučete je na željeni opseg.\nTakođe možete da promenite boju pozadine i izbora, kao i razne druge opcije oblikovanja za kontrolu izgleda i doživljaja. SHIFT+klik takođe funkcionišu za izbor opsega." + "Visual_Weeks_Determination_Standards": "Standardi određivanja sedmica", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "-- nijedna --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/sv-SE/resources.resjson b/stringResources/sv-SE/resources.resjson index 8c2fca0..2b3e776 100644 --- a/stringResources/sv-SE/resources.resjson +++ b/stringResources/sv-SE/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Tid", "Visual_General": "Allmänt", + "Visual_Short_Description": "Grafisk datumintervallväljare för att filtrera datum", + "Visual_Long_Description": "Tidslinje-utsnitt är en väljare för grafiska datumintervall som används som en filtreringskomponent i Power BI. Den gör det enkelt och roligt att filtrera data efter datumdimension.\nHur ofta måste du filtrera dina data för ett datumintervall eller på högre nivå, till exempel månadsvis eller kvartalsvis? Varenda gång, eller hur? Filtrering kan vara jobbigt när du måste klicka dig igenom stora mängder datumvärden för att välja det intervall du är ute efter. Att ändra detaljnivån på filtret från månader, till kvartal och år när du är på språng är superjobbigt. Det brukade vara det i alla fall.\nTidslinje-utsnitt låter dig göra det lekande lätt. Med ett enkelt skjutreglage för datum, är allt du behöver göra att klicka och dra till det intervall som du vill. Du kan också växla till ett år, kvartal eller månad om du vill markera intervall även på högre nivå än datum.\nDu klickar bara på utsnitt för att markera ett enskilt värde eller klicka på kanten och dra det till det intervall du vill.\nDu kan också ändra bakgrund och markeringsfärg och många andra formateringsalternativ som styr utseendet. Skift + klicka fungerar även för att markera ett intervall.", "Visual_FiscalYearStart": "Räkenskapsårets början", + "Visual_FiscalYear": "Räkenskapsår", + "Visual_FiscalYear_Description": "Det här alternativet är inte meningsfullt om ISO 8601-standarden har valts", "Visual_Month": "Månad", "Visual_Month_January": "Januari", "Visual_Month_February": "Februari", @@ -32,6 +36,13 @@ "Visual_Cells": "Celler", "Visual_Cell_SelectedColor": "Vald cell-färg", "Visual_Cell_UnselectedColor": "Omarkerad cell-färg", + "Visual_Cell_SelectedStrokeColor": "Markerad färg för cellstreck", + "Visual_Cell_UnselectedStrokeColor": "Omarkerad färg för cellstreck", + "Visual_Cell_EnableManualSizing": "Aktivera manuell storleksändring", + "Visual_Cell_Width": "Cellbredd", + "Visual_Cell_Height": "Cellhöjd", + "Visual_Cell_StrokeWidth": "Bredd på penseldrag", + "Visual_Cell_GapWidth": "Mellanrumsbredd", "Visual_Granularity": "Kornighet", "Visual_ScaleColor": "Skalningsfärg", "Visual_SliderColor": "Skjutreglage färg", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiketter", "Visual_ScaleSizeAdjustment": "Automatisk justering av skalningsstorlek", "Visual_FirstDayOfWeek": "Första dagen i veckan", + "Visual_FirstDayOfWeek_Description": "Det här alternativet är inte meningsfullt om ISO 8601-standarden har valts", "Visual_DisplayAll": "Visa alla", + "Visual_Cursor": "Markör", + "Visual_CursorColor": "Markörens färg", "Visual_ForceSelection": "Framtvinga markering", "Visual_CurrentPeriod": "Aktuell period", "Visual_LatestAvailableDate": "Senaste tillgängliga period", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Månadssynlighet", "Visual_GranularityWeekVisibility": "Veckosynlighet", "Visual_GranularityDayVisibility": "Dagsynlighet", - "Timeline_Short_Description": "Grafisk datumintervallväljare för att filtrera datum", - "Timeline_Long_Description": "Tidslinje-utsnitt är en väljare för grafiska datumintervall som används som en filtreringskomponent i Power BI. Den gör det enkelt och roligt att filtrera data efter datumdimension.\nHur ofta måste du filtrera dina data för ett datumintervall eller på högre nivå, till exempel månadsvis eller kvartalsvis? Varenda gång, eller hur? Filtrering kan vara jobbigt när du måste klicka dig igenom stora mängder datumvärden för att välja det intervall du är ute efter. Att ändra detaljnivån på filtret från månader, till kvartal och år när du är på språng är superjobbigt. Det brukade vara det i alla fall.\nTidslinje-utsnitt låter dig göra det lekande lätt. Med ett enkelt skjutreglage för datum, är allt du behöver göra att klicka och dra till det intervall som du vill. Du kan också växla till ett år, kvartal eller månad om du vill markera intervall även på högre nivå än datum.\nDu klickar bara på utsnitt för att markera ett enskilt värde eller klicka på kanten och dra det till det intervall du vill.\nDu kan också ändra bakgrund och markeringsfärg och många andra formateringsalternativ som styr utseendet. Skift + klicka fungerar även för att markera ett intervall." + "Visual_Weeks_Determination_Standards": "Standarder för veckors bestämning", + "Visual_Week_Standard": "Standard", + "Visual_Week_Standard_None": "--ingen--", + "Visual_Week_Standard_ISO8601": "ISO-8601" } \ No newline at end of file diff --git a/stringResources/th-TH/resources.resjson b/stringResources/th-TH/resources.resjson index e54e6f9..c5d5b4f 100644 --- a/stringResources/th-TH/resources.resjson +++ b/stringResources/th-TH/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "เวลา", "Visual_General": "ทั่วไป", + "Visual_Short_Description": "ตัวเลือกช่วงวันที่แบบกราฟิกที่จะใช้สำหรับการกรองวันที่", + "Visual_Long_Description": "ตัวแบ่งส่วนข้อมูลเส้นเวลาเป็นตัวเลือกช่วงวันที่แบบกราฟิกที่ใช้เป็นคอมโพเนนต์การกรองใน Power BI ซึ่งทำให้การกรองข้อมูลตามมิติวันเป็นเรื่องง่ายและสนุกสนาน\nคุณกรองข้อมูลของคุณสำหรับช่วงวัน หรือในระดับที่สูงกว่าเช่นเดือนหรือไตรมาสบ่อยเพียงใด ทุกครั้งใช่หรือไม่ การกรองเป็นเรื่องที่น่าปวดหัวเมื่อคุณจะต้องคลิกค่าวันจำนวนมากเพื่อเลือกช่วงเวลาคุณต้องการ ขั้นตอนระหว่างการเปลี่ยนแปลงส่วนประกอบตัวกรองจากเดือน ไตรมาส และปีนั้นน่าเบื่อมาก ซึ่งไม่ใช่อีกต่อไปแล้ว\nตัวแบ่งส่วนข้อมูลเส้นเวลาจะทำให้ประสบการณ์การใช้งานเป็นเรื่องที่แสนง่าย โดยการใช้ตัวควบคุมแบบเลื่อนอย่างง่ายสำหรับวันที่ ที่คุณต้องทำคือเพียงแค่คลิกและลากช่วงที่คุณต้องการ คุณสามารถสลับไปยังมุมมองปี ไตรมาส หรือเดือนเพื่อเลือกช่วง แม้แต่ในระดับสูงที่กว่าวันที่\nคุณเพียงแค่คลิกบนตัวแบ่งส่วนข้อมูลเพื่อเลือกค่าเพียงค่าเดียว หรือคลิกขอบและลากไปยังช่วงที่คุณต้องการ\nคุณยังสามารถเปลี่ยนพื้นหลัง & สีการเลือก และจำนวนตัวเลือกการจัดรูปแบบอื่นๆ เพื่อควบคุมลักษณะที่แสดง การกด SHIFT + คลิกยังใช้ได้สำหรับการเลือกช่วง", "Visual_FiscalYearStart": "การเริ่มต้นปีงบประมาณ", + "Visual_FiscalYear": "ปีงบประมาณ", + "Visual_FiscalYear_Description": "ตัวเลือกนี้ไม่สมเหตุสมผลหากเลือกมาตรฐาน ISO 8601", "Visual_Month": "เดือน", "Visual_Month_January": "มกราคม", "Visual_Month_February": "กุมภาพันธ์", @@ -32,6 +36,13 @@ "Visual_Cells": "เซลล์", "Visual_Cell_SelectedColor": "สีของเซลล์ที่เลือก", "Visual_Cell_UnselectedColor": "สีของเซลล์ที่ไม่ได้เลือก", + "Visual_Cell_SelectedStrokeColor": "สีเส้นขีดของเซลล์ที่เลือก", + "Visual_Cell_UnselectedStrokeColor": "สีเส้นขีดของเซลล์ที่ไม่ได้เลือก", + "Visual_Cell_EnableManualSizing": "เปิดใช้งานการปรับขนาดด้วยตนเอง", + "Visual_Cell_Width": "ความกว้างของเซลล์", + "Visual_Cell_Height": "ความสูงของเซลล์", + "Visual_Cell_StrokeWidth": "ความกว้างของเส้นขีด", + "Visual_Cell_GapWidth": "ความกว้างช่องว่าง", "Visual_Granularity": "การแตกเป็นส่วนย่อย", "Visual_ScaleColor": "สีมาตราส่วน", "Visual_SliderColor": "สีแถบเลื่อน", @@ -43,7 +54,10 @@ "Visual_Labels": "ป้ายชื่อ", "Visual_ScaleSizeAdjustment": "การปรับขนาดมาตราส่วนอัตโนมัติ", "Visual_FirstDayOfWeek": "วันแรกของสัปดาห์", + "Visual_FirstDayOfWeek_Description": "ตัวเลือกนี้ไม่สมเหตุสมผลหากเลือกมาตรฐาน ISO 8601", "Visual_DisplayAll": "แสดงทั้งหมด", + "Visual_Cursor": "เคอร์เซอร์", + "Visual_CursorColor": "สีเคอร์เซอร์", "Visual_ForceSelection": "บังคับเลือก", "Visual_CurrentPeriod": "รอบระยะเวลาปัจจุบัน", "Visual_LatestAvailableDate": "ช่วงเวลาที่พร้อมใช้งานล่าสุด", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "การมองเห็นเดือน", "Visual_GranularityWeekVisibility": "การมองเห็นสัปดาห์", "Visual_GranularityDayVisibility": "การมองเห็นวัน", - "Timeline_Short_Description": "ตัวเลือกช่วงวันที่แบบกราฟิกที่จะใช้สำหรับการกรองวันที่", - "Timeline_Long_Description": "ตัวแบ่งส่วนข้อมูลเส้นเวลาเป็นตัวเลือกช่วงวันที่แบบกราฟิกที่ใช้เป็นคอมโพเนนต์การกรองใน Power BI ซึ่งทำให้การกรองข้อมูลตามมิติวันเป็นเรื่องง่ายและสนุกสนาน\nคุณกรองข้อมูลของคุณสำหรับช่วงวัน หรือในระดับที่สูงกว่าเช่นเดือนหรือไตรมาสบ่อยเพียงใด ทุกครั้งใช่หรือไม่ การกรองเป็นเรื่องที่น่าปวดหัวเมื่อคุณจะต้องคลิกค่าวันจำนวนมากเพื่อเลือกช่วงเวลาคุณต้องการ ขั้นตอนระหว่างการเปลี่ยนแปลงส่วนประกอบตัวกรองจากเดือน ไตรมาส และปีนั้นน่าเบื่อมาก ซึ่งไม่ใช่อีกต่อไปแล้ว\nตัวแบ่งส่วนข้อมูลเส้นเวลาจะทำให้ประสบการณ์การใช้งานเป็นเรื่องที่แสนง่าย โดยการใช้ตัวควบคุมแบบเลื่อนอย่างง่ายสำหรับวันที่ ที่คุณต้องทำคือเพียงแค่คลิกและลากช่วงที่คุณต้องการ คุณสามารถสลับไปยังมุมมองปี ไตรมาส หรือเดือนเพื่อเลือกช่วง แม้แต่ในระดับสูงที่กว่าวันที่\nคุณเพียงแค่คลิกบนตัวแบ่งส่วนข้อมูลเพื่อเลือกค่าเพียงค่าเดียว หรือคลิกขอบและลากไปยังช่วงที่คุณต้องการ\nคุณยังสามารถเปลี่ยนพื้นหลัง & สีการเลือก และจำนวนตัวเลือกการจัดรูปแบบอื่นๆ เพื่อควบคุมลักษณะที่แสดง การกด SHIFT + คลิกยังใช้ได้สำหรับการเลือกช่วง" + "Visual_Weeks_Determination_Standards": "มาตรฐานการกำหนดสัปดาห์", + "Visual_Week_Standard": "มาตรฐาน", + "Visual_Week_Standard_None": "-- ไม่มี --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/tr-TR/resources.resjson b/stringResources/tr-TR/resources.resjson index 6c8978b..bcf08f0 100644 --- a/stringResources/tr-TR/resources.resjson +++ b/stringResources/tr-TR/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Saat", "Visual_General": "Genel", + "Visual_Short_Description": "Tarihleri filtrelemek için kullanılacak grafik tarih aralığı seçicisi", + "Visual_Long_Description": "Zaman Çizgisi dilimleyicisi, Power BI'da filtreleme bileşeni olarak kullanılan grafik bir tarih aralığı seçicisidir. Bu, verileri tarih boyutuna göre filtrelemeyi kolay ve eğlenceli hale getirir.\nVerilerinizi hangi sıklıkla bir tarih aralığına göre veya ay ya da üç aylık dönem gibi daha üst düzeyde filtrelemeniz gerekiyor? Her zaman, değil mi? Filtreleme işlemi, istediğiniz aralığı seçmek için çok sayıda tarih değerine tıklamanız gerektiğinde çok zahmetli olur. Filtrenin hassasiyetini ay yerine üç aya ya da yıla çevirmek çok daha zahmetli. Daha doğrusu zahmetliydi.\nZaman Çizgisi dilimleyicisi bunu artık çocuk oyuncağına çevirecek. Bu basit tarih kaydıracı denetimiyle tüm yapmanız gereken tıklayıp istediğiniz aralığa sürüklemek. Ayrıca tarihten daha üst bir düzeyde aralık seçmek için Yıl, Üç Ay ya da Ay görünümüne geçebilirsiniz.\nTek bir değer seçmek için dilimleyiciye tıklayabilir veya kenarına tıklayıp dilimleyiciyi istediğiniz aralığa sürükleyebilirsiniz.\nAyrıcı görünüm ve hissi denetlemek için arka planı ve seçme rengini ve bir dizi başka biçimlendirme seçeneğini değiştirebilirsiniz. Aralık seçmek için Shift+Tıklama da kullanılabilir.", "Visual_FiscalYearStart": "Mali Yıl Başlangıcı", + "Visual_FiscalYear": "Mali Yıl", + "Visual_FiscalYear_Description": "ISO 8601 standardı seçiliyorsa bu seçeneğin hiçbir değeri yok", "Visual_Month": "Ay", "Visual_Month_January": "Ocak", "Visual_Month_February": "Şubat", @@ -32,6 +36,13 @@ "Visual_Cells": "Hücreler", "Visual_Cell_SelectedColor": "Hücre rengi seçildi", "Visual_Cell_UnselectedColor": "Seçili olmayan hücre rengi", + "Visual_Cell_SelectedStrokeColor": "Seçili hücre vuruş rengi", + "Visual_Cell_UnselectedStrokeColor": "Seçili olmayan hücre vuruş rengi", + "Visual_Cell_EnableManualSizing": "El ile boyutlandırmayı etkinleştir", + "Visual_Cell_Width": "Hücre genişliği", + "Visual_Cell_Height": "Hücre yüksekliği", + "Visual_Cell_StrokeWidth": "Darbe genişliği", + "Visual_Cell_GapWidth": "Boşluk genişliği", "Visual_Granularity": "Ayrıntı düzeyi", "Visual_ScaleColor": "Ölçek rengi", "Visual_SliderColor": "Kaydırıcı rengi", @@ -43,7 +54,10 @@ "Visual_Labels": "Etiketler", "Visual_ScaleSizeAdjustment": "Ölçek boyutunu otomatik ayarlama", "Visual_FirstDayOfWeek": "Haftanın İlk Günü", + "Visual_FirstDayOfWeek_Description": "ISO 8601 standardı seçiliyorsa bu seçeneğin hiçbir değeri yok", "Visual_DisplayAll": "Tümünü göster", + "Visual_Cursor": "İmleç", + "Visual_CursorColor": "İmleç rengi", "Visual_ForceSelection": "Seçimi zorla", "Visual_CurrentPeriod": "Geçerli dönem", "Visual_LatestAvailableDate": "Son kullanılabilirlik dönemi", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Ay görünürlüğü", "Visual_GranularityWeekVisibility": "Hafta görünürlüğü", "Visual_GranularityDayVisibility": "Gün görünürlüğü", - "Timeline_Short_Description": "Tarihleri filtrelemek için kullanılacak grafik tarih aralığı seçicisi", - "Timeline_Long_Description": "Zaman Çizgisi dilimleyicisi, Power BI'da filtreleme bileşeni olarak kullanılan grafik bir tarih aralığı seçicisidir. Bu, verileri tarih boyutuna göre filtrelemeyi kolay ve eğlenceli hale getirir.\nVerilerinizi hangi sıklıkla bir tarih aralığına göre veya ay ya da üç aylık dönem gibi daha üst düzeyde filtrelemeniz gerekiyor? Her zaman, değil mi? Filtreleme işlemi, istediğiniz aralığı seçmek için çok sayıda tarih değerine tıklamanız gerektiğinde çok zahmetli olur. Filtrenin hassasiyetini ay yerine üç aya ya da yıla çevirmek çok daha zahmetli. Daha doğrusu zahmetliydi.\nZaman Çizgisi dilimleyicisi bunu artık çocuk oyuncağına çevirecek. Bu basit tarih kaydıracı denetimiyle tüm yapmanız gereken tıklayıp istediğiniz aralığa sürüklemek. Ayrıca tarihten daha üst bir düzeyde aralık seçmek için Yıl, Üç Ay ya da Ay görünümüne geçebilirsiniz.\nTek bir değer seçmek için dilimleyiciye tıklayabilir veya kenarına tıklayıp dilimleyiciyi istediğiniz aralığa sürükleyebilirsiniz.\nAyrıcı görünüm ve hissi denetlemek için arka planı ve seçme rengini ve bir dizi başka biçimlendirme seçeneğini değiştirebilirsiniz. Aralık seçmek için Shift+Tıklama da kullanılabilir." + "Visual_Weeks_Determination_Standards": "Hafta Belirleme Standartları", + "Visual_Week_Standard": "Standart", + "Visual_Week_Standard_None": "-- yok --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/uk-UA/resources.resjson b/stringResources/uk-UA/resources.resjson index e7896ba..3a5d650 100644 --- a/stringResources/uk-UA/resources.resjson +++ b/stringResources/uk-UA/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Час", "Visual_General": "Загальні", + "Visual_Short_Description": "Графічний засіб вибору діапазону для зручного фільтрування дат.", + "Visual_Long_Description": "Роздільник часової шкали – це графічний засіб вибору діапазону дат, який використовується як компонент фільтрації в Power BI. Цей елемент полегшує фільтрування даних за часовим виміром.\nПрактично постійно доводиться фільтрувати дані за певним діапазоном дат, місяцем або кварталом. Це дуже незручно, коли доводиться прокручувати велику кількість значень даних. Так само набридливо буває змінювати деталізацію фільтра. Проте все це в минулому.\nРоздільник часової шкали значно полегшує цей процес. Завдяки цьому простому елементу керування достатньо клацнути потрібну початкову дату діапазону й перетягнути роздільник до дати завершення. Ви також можете переходити між поданнями \\\"Рік\\\", \\\"Квартал\\\" або \\\"Місяць\\\" і вибирати діапазони навіть на вищому рівні.\nПросто клацніть роздільник, щоб вибрати окреме значення, або клацніть його край і перетягніть до потрібного діапазону.\nВи також можете змінити фон і колір виділення та скористатися безліччю інших параметрів форматування, щоб налаштувати оформлення та зручність використання. Крім того, діапазон можна вибрати, натиснувши клавішу Shift і клацнувши потрібне значення.", "Visual_FiscalYearStart": "Початок фінансового року", + "Visual_FiscalYear": "Фінансовий рік", + "Visual_FiscalYear_Description": "Цей варіант не має сенсу, якщо вибрано стандарт ISO 8601", "Visual_Month": "Місяць", "Visual_Month_January": "січня", "Visual_Month_February": "лютого", @@ -32,6 +36,13 @@ "Visual_Cells": "Клітинки", "Visual_Cell_SelectedColor": "Колір вибраної клітинки", "Visual_Cell_UnselectedColor": "Колір невибраної клітинки", + "Visual_Cell_SelectedStrokeColor": "Вибраний колір розчерку для клітинок", + "Visual_Cell_UnselectedStrokeColor": "Колір розчерку для клітинок, вибір якого скасовано", + "Visual_Cell_EnableManualSizing": "Увімкнути ручне змінення розміру", + "Visual_Cell_Width": "Ширина клітинки", + "Visual_Cell_Height": "Висота клітинки", + "Visual_Cell_StrokeWidth": "Ширина розчерку", + "Visual_Cell_GapWidth": "Ширина проміжку", "Visual_Granularity": "Деталізація", "Visual_ScaleColor": "Колір шкали", "Visual_SliderColor": "Колір повзунка", @@ -43,7 +54,10 @@ "Visual_Labels": "Підписи", "Visual_ScaleSizeAdjustment": "Авторегулювання розміру шкали", "Visual_FirstDayOfWeek": "Перший день тижня", + "Visual_FirstDayOfWeek_Description": "Цей варіант не має сенсу, якщо вибрано стандарт ISO 8601", "Visual_DisplayAll": "Відобразити все", + "Visual_Cursor": "Курсор", + "Visual_CursorColor": "Колір курсору", "Visual_ForceSelection": "Примусово застосувати виділення", "Visual_CurrentPeriod": "Поточний період", "Visual_LatestAvailableDate": "Останній доступний період", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Дані за місяць", "Visual_GranularityWeekVisibility": "Дані за тиждень", "Visual_GranularityDayVisibility": "Дані за день", - "Timeline_Short_Description": "Графічний засіб вибору діапазону для зручного фільтрування дат.", - "Timeline_Long_Description": "Роздільник часової шкали – це графічний засіб вибору діапазону дат, який використовується як компонент фільтрації в Power BI. Цей елемент полегшує фільтрування даних за часовим виміром.\nПрактично постійно доводиться фільтрувати дані за певним діапазоном дат, місяцем або кварталом. Це дуже незручно, коли доводиться прокручувати велику кількість значень даних. Так само набридливо буває змінювати деталізацію фільтра. Проте все це в минулому.\nРоздільник часової шкали значно полегшує цей процес. Завдяки цьому простому елементу керування достатньо клацнути потрібну початкову дату діапазону й перетягнути роздільник до дати завершення. Ви також можете переходити між поданнями \"Рік\", \"Квартал\" або \"Місяць\" і вибирати діапазони навіть на вищому рівні.\nПросто клацніть роздільник, щоб вибрати окреме значення, або клацніть його край і перетягніть до потрібного діапазону.\nВи також можете змінити фон і колір виділення та скористатися безліччю інших параметрів форматування, щоб налаштувати оформлення та зручність використання. Крім того, діапазон можна вибрати, натиснувши клавішу Shift і клацнувши потрібне значення." + "Visual_Weeks_Determination_Standards": "Стандарти визначення тижнів", + "Visual_Week_Standard": "Стандарт", + "Visual_Week_Standard_None": "-- немає --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/vi-VN/resources.resjson b/stringResources/vi-VN/resources.resjson index 17208df..cafbd47 100644 --- a/stringResources/vi-VN/resources.resjson +++ b/stringResources/vi-VN/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "Thời gian", "Visual_General": "Chung", + "Visual_Short_Description": "Bộ chọn phạm vi ngày đồ họa thích hợp để lọc ngày", + "Visual_Long_Description": "Slicer của đường thời gian là một bộ chọn phạm vi ngày theo đồ họa được dùng như là một thành phần lọc trong Power BI. Tùy chọn này giúp việc dữ liệu theo thông số ngày dễ dàng và thú vị.\nBạn thường lọc dữ liệu của mình theo phạm vi ngày hoặc theo phạm vi cao hơn như tháng hoặc quý thường xuyên như nào? Một lần duy nhất. Đúng không? Vấn đề lọc trở nên bất cập khi bjan phải nhấp vào nhiều giá trị ngày để chọn phạm vi bạn cần. Việc thay đổi nhanh mức độ chi tiết của bộ lọc từ tháng, quý và năm trở nên rất tẻ nhạt. Việc sử dụng tính năng lọc đó cũng tẻ nhạt không kém.\nChính vì vậy, Slicer của đường thời gian sẽ giúp biến trải nghiệm này trở nên thú vị hơn. Với tính năng điều khiển thanh trượt đơn giản này cho ngày, tất cả những gì bạn cần thực hiện chỉ là nhấp vào kéo đến phạm vi bạn muốn. Bạn cũng có thể chuyển sang dạng xem Năm, Quý hoặc Tháng để chọn ngay cả các phạm vi ở cấp độ cao hơn ngày.\nBạn có thể dễ dàng nhấp vào slicer để chọn một giá trị hoặc nhấp vào phần cạnh rồi kéo đến phạm vi bạn muốn.\nBạn cũng có thể thay đổi màu nền & vùng chọn cũng như số các tùy chọn định dạng khác để thay đổi giao diện. SHIFT+Nhấp chuột cũng giúp bạn chọn một phạm vi.", "Visual_FiscalYearStart": "Bắt đầu năm tài chính", + "Visual_FiscalYear": "Năm tài chính", + "Visual_FiscalYear_Description": "Tùy chọn này sẽ vô nghĩa nếu bạn chọn tiêu chuẩn ISO 8601", "Visual_Month": "Tháng", "Visual_Month_January": "Tháng 1", "Visual_Month_February": "Tháng 2", @@ -32,6 +36,13 @@ "Visual_Cells": "Ô", "Visual_Cell_SelectedColor": "Đã chọn màu ô", "Visual_Cell_UnselectedColor": "Đã bỏ chọn màu ô", + "Visual_Cell_SelectedStrokeColor": "Màu nét cho ô đã chọn", + "Visual_Cell_UnselectedStrokeColor": "Màu nét cho ô không được chọn", + "Visual_Cell_EnableManualSizing": "Bật định cỡ thủ công", + "Visual_Cell_Width": "Độ rộng ô", + "Visual_Cell_Height": "Chiều cao ô", + "Visual_Cell_StrokeWidth": "Độ rộng nét", + "Visual_Cell_GapWidth": "Độ rộng khoảng cách", "Visual_Granularity": "Độ chi tiết", "Visual_ScaleColor": "Màu thước tỷ lệ", "Visual_SliderColor": "Màu con trượt", @@ -43,7 +54,10 @@ "Visual_Labels": "Nhãn", "Visual_ScaleSizeAdjustment": "Tự động điều chỉnh kích cỡ thước tỷ lệ", "Visual_FirstDayOfWeek": "Ngày đầu tuần", + "Visual_FirstDayOfWeek_Description": "Tùy chọn này sẽ vô nghĩa nếu bạn chọn tiêu chuẩn ISO 8601", "Visual_DisplayAll": "Hiển thị tất cả", + "Visual_Cursor": "Con trỏ", + "Visual_CursorColor": "Màu con trỏ", "Visual_ForceSelection": "Buộc chọn", "Visual_CurrentPeriod": "Giai đoạn hiện nay", "Visual_LatestAvailableDate": "Thời gian khả dụng gần đây nhất", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "Chế độ hiển thị theo tháng", "Visual_GranularityWeekVisibility": "Chế độ hiển thị theo tuần", "Visual_GranularityDayVisibility": "Chế độ hiển thị theo ngày", - "Timeline_Short_Description": "Bộ chọn phạm vi ngày đồ họa thích hợp để lọc ngày", - "Timeline_Long_Description": "Slicer của đường thời gian là một bộ chọn phạm vi ngày theo đồ họa được dùng như là một thành phần lọc trong Power BI. Tùy chọn này giúp việc dữ liệu theo thông số ngày dễ dàng và thú vị.\nBạn thường lọc dữ liệu của mình theo phạm vi ngày hoặc theo phạm vi cao hơn như tháng hoặc quý thường xuyên như nào? Một lần duy nhất. Đúng không? Vấn đề lọc trở nên bất cập khi bjan phải nhấp vào nhiều giá trị ngày để chọn phạm vi bạn cần. Việc thay đổi nhanh mức độ chi tiết của bộ lọc từ tháng, quý và năm trở nên rất tẻ nhạt. Việc sử dụng tính năng lọc đó cũng tẻ nhạt không kém.\nChính vì vậy, Slicer của đường thời gian sẽ giúp biến trải nghiệm này trở nên thú vị hơn. Với tính năng điều khiển thanh trượt đơn giản này cho ngày, tất cả những gì bạn cần thực hiện chỉ là nhấp vào kéo đến phạm vi bạn muốn. Bạn cũng có thể chuyển sang dạng xem Năm, Quý hoặc Tháng để chọn ngay cả các phạm vi ở cấp độ cao hơn ngày.\nBạn có thể dễ dàng nhấp vào slicer để chọn một giá trị hoặc nhấp vào phần cạnh rồi kéo đến phạm vi bạn muốn.\nBạn cũng có thể thay đổi màu nền & vùng chọn cũng như số các tùy chọn định dạng khác để thay đổi giao diện. SHIFT+Nhấp chuột cũng giúp bạn chọn một phạm vi." + "Visual_Weeks_Determination_Standards": "Tiêu chuẩn xác định tuần", + "Visual_Week_Standard": "Tiêu chuẩn", + "Visual_Week_Standard_None": "-- không có --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/zh-CN/resources.resjson b/stringResources/zh-CN/resources.resjson index c8f8537..2041b69 100644 --- a/stringResources/zh-CN/resources.resjson +++ b/stringResources/zh-CN/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "时间", "Visual_General": "常规", + "Visual_Short_Description": "用于筛选日期的图形化日期范围选择器", + "Visual_Long_Description": "时间线切片器是一个图形化的日期范围选择器,用作 Power BI 中的筛选组件。这使得按日期维度筛选数据变得轻松而有趣。\n你需要按日期范围或更高级别(如按月或季度)筛选数据的情况有多频繁? 每一次都需要。对吗? 当你必须单击大量日期值来选择所需范围时,筛选过程会非常痛苦。匆忙地将筛选器粒度在月、季度和年之间更改是非常繁琐的。对了,这曾经是超级繁琐的。\n时间线切片器将使这一体验变得轻而易举。使用这个用于选择日期的简单滑块控件,只需单击并拖动到所需的范围即可。还可以切换到年、季度或月视图以选择范围,甚至可以选择比日期更高的范围级别。\n只需单击切片器以选择单个值,或单击边缘并将其拖动到所需的范围。\n此外,还可以更改背景和选择内容的颜色以及其他格式选项的数量以控制外观。也可以按住 SHIFT 并单击来选择范围。", "Visual_FiscalYearStart": "会计年度开始时间", + "Visual_FiscalYear": "会计年度", + "Visual_FiscalYear_Description": "如果已选取 ISO 8601 标准,则此选项无效", "Visual_Month": "月", "Visual_Month_January": "一月", "Visual_Month_February": "二月", @@ -32,6 +36,13 @@ "Visual_Cells": "单元", "Visual_Cell_SelectedColor": "所选的单元格颜色", "Visual_Cell_UnselectedColor": "未选定的单元格颜色", + "Visual_Cell_SelectedStrokeColor": "已选择的单元格笔划颜色", + "Visual_Cell_UnselectedStrokeColor": "未选择的单元格笔划颜色", + "Visual_Cell_EnableManualSizing": "启用手动大小调整", + "Visual_Cell_Width": "单元格宽度", + "Visual_Cell_Height": "单元格高度", + "Visual_Cell_StrokeWidth": "笔划宽度", + "Visual_Cell_GapWidth": "间隙宽度", "Visual_Granularity": "时间粒度", "Visual_ScaleColor": "刻度颜色", "Visual_SliderColor": "滑块颜色", @@ -43,7 +54,10 @@ "Visual_Labels": "标签", "Visual_ScaleSizeAdjustment": "刻度大小自动调整", "Visual_FirstDayOfWeek": "一周的第一天", + "Visual_FirstDayOfWeek_Description": "如果已选取 ISO 8601 标准,则此选项无效", "Visual_DisplayAll": "全部显示", + "Visual_Cursor": "光标", + "Visual_CursorColor": "光标颜色", "Visual_ForceSelection": "强制选择", "Visual_CurrentPeriod": "当前期间", "Visual_LatestAvailableDate": "最新有效期", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "月可见性", "Visual_GranularityWeekVisibility": "周可见性", "Visual_GranularityDayVisibility": "日可见性", - "Timeline_Short_Description": "用于筛选日期的图形化日期范围选择器", - "Timeline_Long_Description": "时间线切片器是一个图形化的日期范围选择器,用作 Power BI 中的筛选组件。这使得按日期维度筛选数据变得轻松而有趣。\n你需要按日期范围或更高级别(如按月或季度)筛选数据的情况有多频繁? 每一次都需要。对吗? 当你必须单击大量日期值来选择所需范围时,筛选过程会非常痛苦。匆忙地将筛选器粒度在月、季度和年之间更改是非常繁琐的。对了,这曾经是超级繁琐的。\n时间线切片器将使这一体验变得轻而易举。使用这个用于选择日期的简单滑块控件,只需单击并拖动到所需的范围即可。还可以切换到年、季度或月视图以选择范围,甚至可以选择比日期更高的范围级别。\n只需单击切片器以选择单个值,或单击边缘并将其拖动到所需的范围。\n此外,还可以更改背景和选择内容的颜色以及其他格式选项的数量以控制外观。也可以按住 SHIFT 并单击来选择范围。" + "Visual_Weeks_Determination_Standards": "周确定标准", + "Visual_Week_Standard": "标准", + "Visual_Week_Standard_None": "- 无 -", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/stringResources/zh-TW/resources.resjson b/stringResources/zh-TW/resources.resjson index 6b16112..4552952 100644 --- a/stringResources/zh-TW/resources.resjson +++ b/stringResources/zh-TW/resources.resjson @@ -1,7 +1,11 @@ { "Role_Time": "時間", "Visual_General": "一般", + "Visual_Short_Description": "用於篩選日期的圖形日期範圍選取器", + "Visual_Long_Description": "時間軸交叉分析篩選器是圖形日期範圍選取器,用途是 Power BI 中的篩選元件。這讓依據日期維度來篩選日期輕鬆又有趣。\n您多久會需要依日期範圍或更大的範圍 (例如月或季) 篩選一次資料? 每一次,對吧? 當您必須點選為數眾多的資料值,以選取想要的範圍時,篩選就是痛苦的過程。要即時從月、季和年變更篩選細微性,更是令人煩悶。不過,這都是過去式了。\n時間軸交叉分析篩選器會這個體驗變得豪不費力。透過這個適用於日期的簡易交叉分析篩選器控制項,您要做的就只是按一下並拖曳到想要的範圍。您也可以切換成年、季或月的檢視,以選取比日期大的範圍。\n您只要按一下交叉分析篩選器,就可以選取單一值,或按一下邊緣並將其拖曳到想要的範圍。\n您也可以變更背景和選取範圍的色彩,及其他格式設定選項的數字,以控制外觀及操作。SHIFT+按一下也能選取範圍。", "Visual_FiscalYearStart": "會計年度開始", + "Visual_FiscalYear": "會計年度", + "Visual_FiscalYear_Description": "如果已挑選 ISO 8601 標準,則此選項沒有意義", "Visual_Month": "月", "Visual_Month_January": "一月", "Visual_Month_February": "二月", @@ -32,6 +36,13 @@ "Visual_Cells": "資料格", "Visual_Cell_SelectedColor": "所選儲存格色彩", "Visual_Cell_UnselectedColor": "已取消選取的儲存格色彩", + "Visual_Cell_SelectedStrokeColor": "已選取的儲存格筆觸色彩", + "Visual_Cell_UnselectedStrokeColor": "未選取的儲存格筆觸色彩", + "Visual_Cell_EnableManualSizing": "啟用手動調整大小", + "Visual_Cell_Width": "儲存格寬度", + "Visual_Cell_Height": "儲存格高度", + "Visual_Cell_StrokeWidth": "筆觸寬度", + "Visual_Cell_GapWidth": "間距寬度", "Visual_Granularity": "資料粒度", "Visual_ScaleColor": "刻度色彩", "Visual_SliderColor": "滑桿色彩", @@ -43,7 +54,10 @@ "Visual_Labels": "標籤", "Visual_ScaleSizeAdjustment": "刻度大小自動調整", "Visual_FirstDayOfWeek": "每週的第一天", + "Visual_FirstDayOfWeek_Description": "如果已挑選 ISO 8601 標準,則此選項沒有意義", "Visual_DisplayAll": "全部顯示", + "Visual_Cursor": "資料指標", + "Visual_CursorColor": "資料指標色彩", "Visual_ForceSelection": "強制選取", "Visual_CurrentPeriod": "目前週期", "Visual_LatestAvailableDate": "最新可用期間", @@ -53,6 +67,8 @@ "Visual_GranularityMonthVisibility": "顯示到月", "Visual_GranularityWeekVisibility": "顯示到週", "Visual_GranularityDayVisibility": "顯示到日", - "Timeline_Short_Description": "用於篩選日期的圖形日期範圍選取器", - "Timeline_Long_Description": "時間軸交叉分析篩選器是圖形日期範圍選取器,用途是 Power BI 中的篩選元件。這讓依據日期維度來篩選日期輕鬆又有趣。\n您多久會需要依日期範圍或更大的範圍 (例如月或季) 篩選一次資料? 每一次,對吧? 當您必須點選為數眾多的資料值,以選取想要的範圍時,篩選就是痛苦的過程。要即時從月、季和年變更篩選細微性,更是令人煩悶。不過,這都是過去式了。\n時間軸交叉分析篩選器會這個體驗變得豪不費力。透過這個適用於日期的簡易交叉分析篩選器控制項,您要做的就只是按一下並拖曳到想要的範圍。您也可以切換成年、季或月的檢視,以選取比日期大的範圍。\n您只要按一下交叉分析篩選器,就可以選取單一值,或按一下邊緣並將其拖曳到想要的範圍。\n您也可以變更背景和選取範圍的色彩,及其他格式設定選項的數字,以控制外觀及操作。SHIFT+按一下也能選取範圍。" + "Visual_Weeks_Determination_Standards": "週判斷標準", + "Visual_Week_Standard": "標準", + "Visual_Week_Standard_None": "-- 無 --", + "Visual_Week_Standard_ISO8601": "ISO 8601" } \ No newline at end of file diff --git a/style/visual.less b/style/visual.less index 95cb7b2..2b178ee 100644 --- a/style/visual.less +++ b/style/visual.less @@ -28,9 +28,8 @@ * Imports external styles. * We compile it as a less file in order to wrap the external CSS rules. */ -@import (less) "node_modules/powerbi-visuals-utils-interactivityutils/lib/index.css"; -@import (less) "node_modules/powerbi-visuals-utils-formattingutils/lib/index.css"; -@import (less) "node_modules/powerbi-visuals-utils-chartutils/lib/index.css"; +@import (less) "/node_modules/powerbi-visuals-utils-interactivityutils/lib/index.css"; +@import (less) "/node_modules/powerbi-visuals-utils-chartutils/lib/index.css"; .timeline-component { cursor: default; @@ -51,10 +50,6 @@ text-anchor: middle; } - .cellRect { - stroke: #333444; - } - .selection { &Cursor { fill: gray; diff --git a/test.webpack.config.js b/test.webpack.config.js index 98797cd..7b0dae7 100644 --- a/test.webpack.config.js +++ b/test.webpack.config.js @@ -6,34 +6,11 @@ module.exports = { mode: 'development', module: { rules: [ - { - test: /\.ts$/, - enforce: 'pre', - exclude: /node_modules/, - use: [{ - loader: 'tslint-loader', - options: { - emitErrors: true, - failOnHint: true, - fix: false, - } - }] - }, { test: /\.ts$/, use: 'ts-loader', exclude: /(node_modules|dist|coverage|karma.conf.ts)/ }, - { - test: /\.ts$/i, - enforce: 'post', - include: /(src)/, - exclude: /(specs|node_modules|resources\/js\/vendor)/, - loader: 'istanbul-instrumenter-loader', - options: { - esModules: true - } - }, { test: /\.less$/, use: [{ diff --git a/test/visual.test.ts b/test/visual.test.ts index d906d05..bb8d0fb 100644 --- a/test/visual.test.ts +++ b/test/visual.test.ts @@ -23,36 +23,33 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -import "jasmine-jquery"; - -import { select as d3Select } from "d3-selection"; -import * as $ from "jquery"; +import {select as d3Select} from "d3-selection"; import powerbiVisualsApi from "powerbi-visuals-api"; -import { - assertColorsMatch, clickElement, d3Click, renderTimeout, -} from "powerbi-visuals-utils-testutils"; - -import { Calendar } from "../src/calendars/calendar"; -import { ITimelineCursorOverElement, ITimelineData } from "../src/dataInterfaces"; -import { ITimelineDatePeriod, ITimelineDatePeriodBase } from "../src/datePeriod/datePeriod"; -import { DatePeriodBase } from "../src/datePeriod/datePeriodBase"; -import { DayGranularity } from "../src/granularity/dayGranularity"; -import { IGranularity } from "../src/granularity/granularity"; -import { GranularityBase } from "../src/granularity/granularityBase"; -import { GranularityType } from "../src/granularity/granularityType"; -import { MonthGranularity } from "../src/granularity/monthGranularity"; -import { QuarterGranularity } from "../src/granularity/quarterGranularity"; -import { WeekGranularity } from "../src/granularity/weekGranularity"; -import { YearGranularity } from "../src/granularity/yearGranularity"; -import { CalendarSettings } from "../src/settings/calendarSettings"; -import { WeekDaySettings } from "../src/settings/weekDaySettings"; -import { Utils } from "../src/utils"; -import { Timeline } from "../src/timeLine"; -import { GranularityMock } from "./granularityMock"; -import { areColorsEqual, getSolidColorStructuralObject } from "./helpers"; -import { VisualBuilder } from "./visualBuilder"; -import { VisualData } from "./visualData"; -import { CalendarISO8061 } from "../src/calendars/calendarISO8061"; +import {assertColorsMatch, d3Click, parseColorString, renderTimeout,} from "powerbi-visuals-utils-testutils"; + +import {Calendar, CalendarFormat, WeekdayFormat} from "../src/calendars/calendar"; +import {ITimelineCursorOverElement, ITimelineData} from "../src/dataInterfaces"; +import {ITimelineDatePeriod, ITimelineDatePeriodBase} from "../src/datePeriod/datePeriod"; +import {DatePeriodBase} from "../src/datePeriod/datePeriodBase"; +import {CalendarISO8061} from "../src/calendars/calendarISO8061"; +import {Weekday} from "../src/calendars/weekday"; + +import {DayGranularity} from "../src/granularity/dayGranularity"; +import {IGranularity} from "../src/granularity/granularity"; +import {GranularityType} from "../src/granularity/granularityType"; +import {MonthGranularity} from "../src/granularity/monthGranularity"; +import {QuarterGranularity} from "../src/granularity/quarterGranularity"; +import {WeekGranularity} from "../src/granularity/weekGranularity"; +import {YearGranularity} from "../src/granularity/yearGranularity"; + +import {Utils} from "../src/utils"; +import {areColorsEqual, getSolidColorStructuralObject} from "./helpers"; +import {Timeline} from "../src/timeLine"; +import {CellsSettingsCard} from "../src/timeLineSettingsModel"; +import {GranularityMock} from "./granularityMock"; +import {VisualBuilder} from "./visualBuilder"; +import {VisualData} from "./visualData"; + describe("Timeline", () => { let visualBuilder: VisualBuilder; @@ -67,9 +64,9 @@ describe("Timeline", () => { }); describe("DOM tests", () => { - it("svg element created", () => expect(visualBuilder.mainElement[0]).toBeInDOM()); + it("svg element created", () => expect(visualBuilder.mainElement).toBeDefined()); - it("basic update", (done) => { + it("test granularity update", (done) => { dataView.metadata.objects = { granularity: { granularity: GranularityType.day, @@ -79,35 +76,29 @@ describe("Timeline", () => { visualBuilder.update(dataView); renderTimeout(() => { - const countOfDays: number = visualBuilder - .mainElement - .children("g.mainArea") - .children(".cellsArea") - .children(".cellRect") - .length; + const countOfDays: number = visualBuilder.cellRects.length; const countOfTextItems: number = visualBuilder .mainElement - .children("g.mainArea") - .children("g") - .eq(4) - .children(".label") - .children() + .querySelectorAll("g.mainArea > g") + [4] + .querySelectorAll(".label > *") .length; expect(countOfDays).toBe(dataView.categorical.categories[0].values.length); expect(countOfTextItems).toBe(dataView.categorical.categories[0].values.length); - const cellRects: JQuery = visualBuilder.mainElement.find(".cellRect"); + const cellRects: NodeListOf = visualBuilder.cellRects + const lastCell = cellRects[cellRects.length - 1]; - d3Click(cellRects.last(), 0, 0); + lastCell.dispatchEvent(new MouseEvent("click")); - const unselectedCellRect: JQuery = visualBuilder - .mainElement - .find(".cellRect") - .first(); + const selectedCellColor = parseColorString(getComputedStyle(lastCell).fill); + const unselectedCellColor = parseColorString(getComputedStyle(cellRects[0]).fill); - assertColorsMatch(unselectedCellRect.attr("fill"), "transparent"); + expect(selectedCellColor.R).not.toBe(unselectedCellColor.R); + expect(selectedCellColor.G).not.toBe(unselectedCellColor.G); + expect(selectedCellColor.B).not.toBe(unselectedCellColor.B); const cellHeightStr: string = cellRects[0].attributes.getNamedItem("height").value; const cellHeight: number = parseInt(cellHeightStr.replace("px", ""), 10); @@ -133,10 +124,7 @@ describe("Timeline", () => { visualBuilder.updateRenderTimeout(dataView, () => { const countOfDays: number = visualBuilder - .mainElement - .children("g.mainArea") - .children(".cellsArea") - .children(".cellRect") + .cellRects .length; expect(countOfDays).toBe(dataView.categorical.categories[0].values.length - 1); @@ -146,7 +134,7 @@ describe("Timeline", () => { }); }); - it("basic update", (done) => { + it("range header to contain 2016", (done) => { dataView.metadata.objects = { granularity: { granularity: GranularityType.year, @@ -155,11 +143,9 @@ describe("Timeline", () => { visualBuilder.update(dataView); - setTimeout(() => { + renderTimeout(() => { // TimeRangeText check visibility when visual is small - const textRangeText: string = $(".selectionRangeContainer") - .first() - .text(); + const textRangeText: string | null = visualBuilder.getRangeHeader().firstElementChild.textContent expect(textRangeText).toContain("2016"); @@ -180,9 +166,9 @@ describe("Timeline", () => { renderTimeout(() => { builder.updateRenderTimeout(dataView, () => { - const indexOfDots: number = builder.rangeHeaderText - .text() - .indexOf("..."); + const rangeHeader = builder.getRangeHeader(); + const textContent = rangeHeader?.textContent || ""; + const indexOfDots = textContent.indexOf("..."); expect(indexOfDots !== -1).toBeTruthy(); @@ -192,7 +178,7 @@ describe("Timeline", () => { }); describe("selection should be cleared if user clicks to root element", () => { - beforeEach(() => { + it("click clears selection", (done) => { dataView.metadata.objects = { granularity: { granularity: GranularityType.day, @@ -200,28 +186,23 @@ describe("Timeline", () => { }; visualBuilder.update(dataView); - spyOn(visualBuilder.visualObject, "clearUserSelection"); - }); - it("click - event", (done) => { d3Click(visualBuilder.rootElement, 0, 0); renderTimeout(() => { expect(visualBuilder.visualObject.clearUserSelection).toHaveBeenCalled(); done(); - }); + }) }); }); describe("granularity", () => { - let periodSlicerSelectionRectElements: JQuery; - beforeEach((done) => { dataView.metadata.objects = { granularity: { - granularity: GranularityType.month, + granularity: GranularityType.month }, }; @@ -231,15 +212,13 @@ describe("Timeline", () => { spyOn(visualBuilder.visualObject, "selectPeriod"); renderTimeout(() => { - periodSlicerSelectionRectElements = $(visualBuilder.element) - .find(".periodSlicerSelectionRect"); - done(); }); }); it("click - event", () => { - d3Click($(periodSlicerSelectionRectElements[0]), 0, 0); + const periodSlicerSelectionRects = visualBuilder.periodSlicerSelectionRects; + periodSlicerSelectionRects[0].dispatchEvent(new MouseEvent("click")); expectToCallSelectPeriod(GranularityType.year); }); @@ -262,11 +241,11 @@ describe("Timeline", () => { }; visualBuilder.update(dataView); - const $periodSlicerSelectionRectElements = $(visualBuilder.element).find(".periodSlicerSelectionRect"); - d3Click($($periodSlicerSelectionRectElements[0]), 0, 0); + const periodSlicerRectElements = visualBuilder.periodSlicerSelectionRects; + periodSlicerRectElements[0].dispatchEvent(new MouseEvent("click")); - expect($periodSlicerSelectionRectElements.length).toEqual(4); + expect(periodSlicerRectElements.length).toEqual(4); expectToCallSelectPeriod(GranularityType.quarter); }); @@ -278,11 +257,11 @@ describe("Timeline", () => { }; visualBuilder.update(dataView); - const $periodSlicerSelectionRectElements = $(visualBuilder.element).find(".periodSlicerSelectionRect"); - d3Click($($periodSlicerSelectionRectElements[1]), 0, 0); + const periodSlicerRectElements = visualBuilder.periodSlicerSelectionRects; + periodSlicerRectElements[1].dispatchEvent(new MouseEvent("click")); - expect($periodSlicerSelectionRectElements.length).toEqual(4); + expect(periodSlicerRectElements.length).toEqual(4); expectToCallSelectPeriod(GranularityType.month); }); @@ -297,11 +276,10 @@ describe("Timeline", () => { visualBuilder.update(dataView); - const $periodSlicerSelectionRectElements = $(visualBuilder.element).find(".periodSlicerSelectionRect"); + const periodSlicerRectElements = visualBuilder.periodSlicerSelectionRects; + periodSlicerRectElements[1].dispatchEvent(new MouseEvent("click")); - d3Click($($periodSlicerSelectionRectElements[1]), 0, 0); - - expect($periodSlicerSelectionRectElements.length).toEqual(2); + expect(periodSlicerRectElements.length).toEqual(2); expectToCallSelectPeriod(GranularityType.day); }); @@ -318,9 +296,8 @@ describe("Timeline", () => { visualBuilder.update(dataView); - const $periodSlicerSelectionRectElements = $(visualBuilder.element).find(".periodSlicerSelectionRect"); - - expect($periodSlicerSelectionRectElements.length).toEqual(0); + const periodSlicerRectElements = visualBuilder.periodSlicerSelectionRects; + expect(periodSlicerRectElements.length).toEqual(0); }); function expectToCallChangeGranularity(granularity: GranularityType): void { @@ -354,69 +331,14 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - const cellRects: JQuery = visualBuilder.cellRects; + const cellRects: NodeListOf = visualBuilder.cellRects; for (let i: number = 0; i < cellRects.length; i++) { const fillColor: string = d3Select(cellRects[i]).attr("fill"); - assertColorsMatch(fillColor, "transparent", i === 0); + assertColorsMatch(fillColor, CellsSettingsCard.FillUnselectedDefaultColor, i === 0); } }); - - function checkSelectionState( - dataViewObject: powerbiVisualsApi.DataView, - builder: VisualBuilder, - done: () => void, - modificator?: (dataView: powerbiVisualsApi.DataView) => void, - ): void { - - dataViewObject.metadata.objects = { - granularity: { - granularity: GranularityType.month, - }, - }; - - builder.update(dataViewObject); - - const countOfMonth: number = builder - .mainElement - .find(".cellRect") - .length; - - ((dataViewObject.metadata.objects)).granularity.granularity = GranularityType.day; - - builder.update(dataViewObject); - - builder.selectTheLatestCell(); - - const timelineData: ITimelineData = builder.visualObject.timelineData; - - const startDate: Date = Utils.GET_START_SELECTION_DATE(timelineData); - const endDate: Date = Utils.GET_END_SELECTION_DATE(timelineData); - - ((dataViewObject.metadata.objects)).general = { - datePeriod: DatePeriodBase.CREATE(startDate, endDate), - }; - - builder.updateflushAllD3TransitionsRenderTimeout(dataViewObject, () => { - ((dataViewObject.metadata.objects)).granularity.granularity = GranularityType.month; - - if (modificator) { - modificator(dataViewObject); - } - - builder.update(dataViewObject); - - const countMonthOfSelectedDays: number = builder - .mainElement - .find(".cellRect") - .length; - - expect(countMonthOfSelectedDays).toEqual(countOfMonth + 1); - - done(); - }); - } }); describe("setValidCalendarSettings", () => { @@ -433,11 +355,11 @@ describe("Timeline", () => { }); function checkCalendarSettings(day: number, month: number, expectedDay: number): void { - const calendarSettings: CalendarSettings = { day, month }; + const calendarSettings: CalendarFormat = { day, month }; - Timeline.SET_VALID_CALENDAR_SETTINGS(calendarSettings); + const adjustedDay: number = Timeline.ADJUST_CALENDAR_DAY_SETTINGS(calendarSettings); - expect(calendarSettings.day).toBe(expectedDay); + expect(adjustedDay).toBe(expectedDay); } }); @@ -517,10 +439,18 @@ describe("Timeline", () => { const selectedElements: Element[] = []; visualBuilder.cellRects - .toArray() .forEach((element: Element) => { - const fill: string = $(element).attr("fill"); - if (fill !== "rgba(0, 0, 0, 0)" && fill !== "transparent") { + const fill: string = getComputedStyle(element).fill; + + const fillColorParsed = parseColorString(fill); + const unselectedFillColor = parseColorString(CellsSettingsCard.FillUnselectedDefaultColor); + + if (fill !== "rgba(0, 0, 0, 0)" && + fill !== Utils.DefaultCellColor && + (fillColorParsed.R !== unselectedFillColor.R || + fillColorParsed.G !== unselectedFillColor.G || + fillColorParsed.B !== unselectedFillColor.B ) + ) { selectedElements.push(element); } }); @@ -535,20 +465,27 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - const selectedElements: Element[] = []; - const lastElement = visualBuilder.cellRects.last(); + const selectedElements: SVGRectElement[] = []; + const cells = visualBuilder.cellRects; + const lastElement = cells[cells.length - 1]; - visualBuilder.cellRects - .toArray() - .forEach((element: Element) => { - const fill: string = $(element).attr("fill"); - if (fill !== "rgba(0, 0, 0, 0)" && fill !== "transparent") { + cells.forEach((element: SVGRectElement) => { + const fill: string = getComputedStyle(element).fill; + + const fillColorParsed = parseColorString(fill); + const unselectedFillColor = parseColorString(CellsSettingsCard.FillUnselectedDefaultColor); + + if (fill !== "rgba(0, 0, 0, 0)" && + fill !== Utils.DefaultCellColor && + fillColorParsed.R !== unselectedFillColor.R && + fillColorParsed.G !== unselectedFillColor.G && + fillColorParsed.B !== unselectedFillColor.B) { selectedElements.push(element); } }); expect(selectedElements.length).toEqual(1); - expect(selectedElements[0]).toEqual(lastElement[0]); + expect(selectedElements[0]).toEqual(lastElement); } describe("Range header", () => { @@ -563,12 +500,14 @@ describe("Timeline", () => { it("show", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - expect(visualBuilder.rangeHeaderText.text()).not.toBe(""); + let rangeHeader: SVGTextElement | null = visualBuilder.getRangeHeader(); + expect(rangeHeader?.textContent).not.toBe(""); ((dataView.metadata.objects)).rangeHeader.show = false; visualBuilder.updateFlushAllD3Transitions(dataView); - expect(visualBuilder.rangeHeaderText.text()).toBe(""); + rangeHeader = visualBuilder.getRangeHeader(); + expect(rangeHeader).toBeNull(); }); it("font color", () => { @@ -578,7 +517,8 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - assertColorsMatch(visualBuilder.rangeHeaderText.css("fill"), color); + const fill: string = getComputedStyle(visualBuilder.rangeHeaderText).fill; + assertColorsMatch(fill, color); }); it("font size", () => { @@ -588,7 +528,7 @@ describe("Timeline", () => { ((dataView.metadata.objects)).rangeHeader.textSize = fontSize; visualBuilder.updateFlushAllD3Transitions(dataView); - expect(visualBuilder.rangeHeaderText.css("font-size")).toBe(expectedFontSize); + expect(visualBuilder.rangeHeaderText.style["font-size"]).toBe(expectedFontSize); }); }); @@ -605,9 +545,9 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); visualBuilder.cellRects - .toArray() - .forEach((element: Element) => { - assertColorsMatch($(element).css("fill"), color); + .forEach((element: SVGRectElement) => { + const fill: string = getComputedStyle(element).fill; + assertColorsMatch(fill, color); }); }); @@ -625,19 +565,18 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - const lastCell: JQuery = visualBuilder.cellRects.last(); + const lastCell: SVGRectElement = visualBuilder.lastCellRect; - clickElement(lastCell); + lastCell.dispatchEvent(new MouseEvent("click")); visualBuilder.cellRects - .toArray() - .forEach((element: Element) => { - const $element = $(element); + .forEach((element: SVGRectElement) => { + const fill: string = getComputedStyle(element).fill; assertColorsMatch( - $element.css("fill"), + fill, color, - $element.is(lastCell)); + element === lastCell); }); }); }); @@ -655,10 +594,10 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); visualBuilder.timelineSlicer - .children("rect.timelineVertLine, text.periodSlicerGranularities, text.periodSlicerSelection") - .toArray() + .querySelectorAll("rect.timelineVertLine, text.periodSlicerGranularities, text.periodSlicerSelection") .forEach((element: Element) => { - assertColorsMatch($(element).css("fill"), color); + const fill: string = getComputedStyle(element).fill; + assertColorsMatch(fill, color); }); }); @@ -673,9 +612,7 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - const strokeColor: string = visualBuilder.timelineSlicer - .find("rect.periodSlicerRect") - .css("stroke"); + const strokeColor: string = visualBuilder.periodSlicer.style["stroke"]; assertColorsMatch(strokeColor, color); }); @@ -686,8 +623,6 @@ describe("Timeline", () => { const startDateRange: Date = new Date(2015, 0, 1); const weekFromStartRange: Date = new Date(2015, 0, 7); - const granularity: string = "week"; - beforeEach(() => { visualBuilder = new VisualBuilder(1000, 500); defaultDataViewBuilder = new VisualData(); @@ -697,12 +632,10 @@ describe("Timeline", () => { }); it("check calendar with default day of week - Sunday", () => { - const dayOfWeekSundayNumber = 0; - dataView.metadata.objects = { granularity: {}, weekDay: { - day: dayOfWeekSundayNumber, + day: Weekday.Sunday, daySelection, }, }; @@ -711,12 +644,10 @@ describe("Timeline", () => { }); it("check calendar with setted day of week - Tuesday", () => { - const dayOfWeekThursdayNumber = 2; - dataView.metadata.objects = { granularity: {}, weekDay: { - day: dayOfWeekThursdayNumber, + day: Weekday.Tuesday, daySelection, }, }; @@ -724,7 +655,7 @@ describe("Timeline", () => { checkSelectedElement(GranularityType.week, 2); }); - it("check calendar getWeekperiod function with day of week option off", () => { + it("check calendar getWeekPeriod function with day of week option off", () => { dataView.metadata.objects = { granularity: {}, weekDay: { @@ -770,7 +701,7 @@ describe("Timeline", () => { dataView.metadata.objects = { granularity: { - granularity: GranularityType[granularity], + granularity: GranularityType.week, }, weekDay: { daySelection: !daySelection, @@ -814,12 +745,13 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - const lastCell: JQuery = visualBuilder.cellRects.last(); + const lastCell: SVGRectElement = visualBuilder.lastCellRect; - clickElement(lastCell); + lastCell.dispatchEvent(new MouseEvent("click")); + const fill: string = getComputedStyle(lastCell).fill; assertColorsMatch( - lastCell.css("fill"), + fill, colorSel); } } @@ -853,14 +785,12 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - const lastCell: JQuery = visualBuilder.cellRects.last(); + const lastCell: SVGRectElement = visualBuilder.lastCellRect; - clickElement(lastCell); + lastCell.dispatchEvent(new MouseEvent("click")); - assertColorsMatch( - lastCell.css("fill"), - selectedColor, - ); + const lastCellFill: string = getComputedStyle(lastCell).fill; + assertColorsMatch(lastCellFill, selectedColor); } } }); @@ -892,14 +822,12 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - const firstCell: JQuery = visualBuilder.cellRects.first(); + const firstCell: SVGRectElement = visualBuilder.lastCellRect; - clickElement(firstCell); + firstCell.dispatchEvent(new MouseEvent("click")); - assertColorsMatch( - firstCell.css("fill"), - selectedColor, - ); + const firstCellFill: string = getComputedStyle(firstCell).fill; + assertColorsMatch(firstCellFill, selectedColor); } } }); @@ -928,7 +856,9 @@ describe("Timeline", () => { it(`current period out of data set for granularity`, () => { for (const granularity of Object.keys(GranularityType)) { - if (isNaN(+granularity)) { + const granularityValue = +granularity; + + if (!isNaN(granularityValue)) { const startDateRange: Date = new Date(2010, 0, 1); const endDateRange: Date = new Date(2011, 11, 31); @@ -942,7 +872,7 @@ describe("Timeline", () => { currentPeriod: true, }, granularity: { - granularity, + granularity: granularityValue, }, }; @@ -961,25 +891,25 @@ describe("Timeline", () => { const amountOfMonths: number = amountOfMonthsInYearsDiff + amountOfMonthsThisYear; let expectedElementsAmount: number; - switch (granularity) { - case "year": + switch (granularityValue) { + case GranularityType.year: expectedElementsAmount = amountOfYears; break; - case "quarter": + case GranularityType.quarter: expectedElementsAmount = amountOfMonths / 3; break; - case "month": + case GranularityType.month: expectedElementsAmount = amountOfMonths; break; - case "week": + case GranularityType.week: expectedElementsAmount = Math.ceil((amountOfDays - amountOfDaysFromStart) / 7) + 1; break; - case "day": + case GranularityType.day: expectedElementsAmount = amountOfDays - amountOfDaysFromStart; break; } - checkSelectedElement(GranularityType[granularity], Math.ceil(expectedElementsAmount)); + checkSelectedElement(granularity, Math.ceil(expectedElementsAmount)); } } }); @@ -1000,7 +930,7 @@ describe("Timeline", () => { granularity: {}, }; - checkSelectedElementIsLatestAvailable(GranularityType[granularity]); + checkSelectedElementIsLatestAvailable(granularity); } } }); @@ -1023,7 +953,7 @@ describe("Timeline", () => { granularity: {}, }; - checkSelectedElementIsLatestAvailable(GranularityType[granularity]); + checkSelectedElementIsLatestAvailable(granularity); } } }); @@ -1041,23 +971,23 @@ describe("Timeline", () => { it("show", () => { visualBuilder.updateFlushAllD3Transitions(dataView); - expect(visualBuilder.allLabels).toBeInDOM(); + expect(visualBuilder.allLabels.length).toBeGreaterThan(0); ((dataView.metadata.objects)).labels.show = false; visualBuilder.updateFlushAllD3Transitions(dataView); - expect(visualBuilder.allLabels).not.toBeInDOM(); + expect(visualBuilder.allLabels.length).toBe(0); }); it("shows only selected granularity label if displayAll is set to false", () => { visualBuilder.updateFlushAllD3Transitions(dataView); // All labels should be visible - expect(visualBuilder.allLabels.children().length).toBeGreaterThan(1); + expect(visualBuilder.allLabels.length).toBeGreaterThan(1); ((dataView.metadata.objects)).labels.displayAll = false; visualBuilder.updateFlushAllD3Transitions(dataView); // Only one label should be visible - expect(visualBuilder.allLabels.children().length).toBe(1); + expect(visualBuilder.allLabels.length).toBe(1); }); it("font color", () => { @@ -1068,9 +998,9 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); visualBuilder.allLabels - .toArray() - .forEach((element: Element) => { - assertColorsMatch($(element).css("fill"), color); + .forEach((element: SVGTextElement) => { + const fill: string = getComputedStyle(element).fill; + assertColorsMatch(fill, color); }); }); @@ -1082,9 +1012,9 @@ describe("Timeline", () => { visualBuilder.updateFlushAllD3Transitions(dataView); visualBuilder.allLabels - .toArray() - .forEach((element: Element) => { - expect($(element).css("font-size")).toBe(expectedFontSize); + .forEach((element: SVGTextElement) => { + const fontSize: string = element.style["font-size"]; + expect(fontSize).toBe(expectedFontSize); }); }); }); @@ -1131,7 +1061,7 @@ describe("Timeline - Granularity - 1 Jan (Regular Calendar)", () => { }); it("should return zero adjustment for a year", () => { - const yearAdjustment = calendar.getFiscalYearAjustment(); + const yearAdjustment = calendar.getFiscalYearAdjustment(); expect(yearAdjustment).toEqual(0); }); }); @@ -1207,7 +1137,7 @@ describe("Timeline - Granularity - 1 Apr (Fiscal Calendar)", () => { }); it("should return [1] adjustment for a year", () => { - const yearAdjustment = calendar.getFiscalYearAjustment(); + const yearAdjustment = calendar.getFiscalYearAdjustment(); expect(yearAdjustment).toEqual(1); }); }); @@ -1326,7 +1256,7 @@ describe("Timeline - Granularity - ISO 8601 Week numbering", () => { }); it("fiscal year adjustment is 0", () => { - expect(calendar.getFiscalYearAjustment()).toEqual(0); + expect(calendar.getFiscalYearAdjustment()).toEqual(0); }); it("a year must be determine without relation to week numbers", () => { @@ -1762,7 +1692,7 @@ describe("Accessibility", () => { it("should use proper stroke color from color palette", (done) => { visualBuilder.updateRenderTimeout(dataView, () => { - const layers = visualBuilder.cellRects.toArray().map($); + const layers: SVGRectElement[] = Array.from(visualBuilder.cellRects); expect(isColorAppliedToElements(layers, foregroundColor, "stroke")); @@ -1771,12 +1701,12 @@ describe("Accessibility", () => { }); function isColorAppliedToElements( - elements: JQuery[], + elements: SVGRectElement[], color?: string, colorStyleName: string = "fill", ): boolean { - return elements.some((element: JQuery) => { - const currentColor: string = element.css(colorStyleName); + return elements.some((element: SVGRectElement) => { + const currentColor: string = getComputedStyle(element).getPropertyValue(colorStyleName); if (!currentColor || !color) { return currentColor === color; @@ -1795,12 +1725,12 @@ function createCalendar( dayOfWeekSelectionOn: boolean = false, ): Calendar { - const calendarSettings: CalendarSettings = { + const calendarSettings: CalendarFormat = { day, month, }; - const weekDaySettings: WeekDaySettings = { + const weekDaySettings: WeekdayFormat = { day: week, daySelection: dayOfWeekSelectionOn, }; diff --git a/test/visualBuilder.ts b/test/visualBuilder.ts index 52fbb5d..004f2b6 100644 --- a/test/visualBuilder.ts +++ b/test/visualBuilder.ts @@ -30,10 +30,7 @@ import { AdvancedFilter, } from "powerbi-models"; -import * as $ from "jquery"; - import { - d3Click, VisualBuilderBase, } from "powerbi-visuals-utils-testutils"; @@ -65,50 +62,71 @@ export class VisualBuilder extends VisualBuilderBase { return this.visual; } - public get rootElement(): JQuery { - return $(this.element).find(".timeline-component"); + public get rootElement(): HTMLElement { + return this.element.querySelector(".timeline-component"); } - public get mainElement(): JQuery { - return $(this.element).find("svg.timeline"); + public get mainElement(): SVGElement { + return this.element.querySelector("svg.timeline"); } - public get headerElement(): JQuery { - return $(this.element).children("div") - .children("div") - .children("svg"); + public get headerElement(): SVGElement { + return this.element + .querySelector("div.timeline-component") + .querySelector("div") + .querySelector("svg"); } - public get cellRects(): JQuery { - return this.mainArea - .children(".cellsArea") - .children(".cellRect"); - } - public get mainArea() { - return this.mainElement - .children("g.mainArea"); + public get mainArea(): SVGGElement { + return this.mainElement.querySelector("g.mainArea"); } - public get allLabels() { - return this.mainArea - .children("g") - .children("text.label"); + public get allLabels(): NodeListOf { + return this.mainArea.querySelectorAll("text.label"); } - public get rangeHeaderText() { + public get rangeHeaderText(): SVGTextElement | undefined { return this.headerElement - .children("g.rangeTextArea") - .children("text.selectionRangeContainer"); + .querySelector("g.rangeTextArea") + .querySelector("text.selectionRangeContainer"); } - public get timelineSlicer() { - return this.headerElement - .children("g.timelineSlicer"); + public getRangeHeader(): SVGTextElement | null { + const rangeTextArea = this.headerElement.querySelector("g.rangeTextArea"); + const rangeHeader = rangeTextArea?.querySelector("text.selectionRangeContainer"); + if (!rangeHeader) { + return null; + } + + return rangeHeader; + } + + public get timelineSlicer(): SVGGElement { + return this.headerElement.querySelector("g.timelineSlicer"); } - public selectTheLatestCell(): void { - d3Click(this.mainElement.find(".cellRect").last(), 0, 0); + public get periodSlicer(): SVGRectElement { + return this.timelineSlicer.querySelector("rect.periodSlicerRect"); + } + + public get periodSlicerSelectionRects(): NodeListOf { + return this.timelineSlicer.querySelectorAll("rect.periodSlicerSelectionRect"); + } + + public get cellRects(): NodeListOf { + return this.mainArea + .querySelector("g.cellsArea") + .querySelectorAll("rect.cellRect"); + } + + public get lastCellRect(): SVGRectElement { + const cells = this.cellRects; + if (!cells || cells.length === 0) { + return undefined; + } + + return cells[cells.length - 1]; } public setFilter(startDate: Date, endDate: Date): void { @@ -131,7 +149,7 @@ export class VisualBuilder extends VisualBuilderBase { this.jsonFilters = [filter]; } - public update(dataView) { + public update(dataView: powerbiVisualsApi.DataView) { this.visual.update({ dataViews: [].concat(dataView), jsonFilters: this.jsonFilters, diff --git a/tslint.json b/tslint.json deleted file mode 100644 index e36e99d..0000000 --- a/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "tslint-microsoft-contrib/recommended", - "rulesDirectory": [ - "node_modules/tslint-microsoft-contrib" - ], - "rules": { - "no-relative-imports": false - } -}