diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index be99f53ca3..9e4979ce0c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -33,8 +33,6 @@ jobs: working-directory: scripts env: NODE_OPTIONS: --max-old-space-size=8192 - - name: Copy build to app resources - run: cp -r webapp/build resources/webapp - name: Set up Python uses: actions/setup-python@v1 with: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f484d6e501..c8d2aa17d4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -90,10 +90,6 @@ jobs: working-directory: webapp env: NODE_OPTIONS: --max-old-space-size=8192 - - name: Check extracted deps - if: matrix.os == 'ubuntu-latest' - run: npm run check - working-directory: webapp - name: Lint if: matrix.os == 'ubuntu-latest' run: npm run lint @@ -102,31 +98,3 @@ jobs: run: npm run test working-directory: webapp - npm-test2: - runs-on: ${{ matrix.os }} - strategy: - max-parallel: 9 - matrix: - os: [ ubuntu-latest ] - steps: - - name: Checkout github repo - uses: actions/checkout@v1 - - name: Set up Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: 14.x - - name: Install dependencies - run: npm install - working-directory: webapp_v2 - - name: Build - run: npm run build - working-directory: webapp_v2 - env: - NODE_OPTIONS: --max-old-space-size=8192 - - name: Lint - run: npm run lint - working-directory: webapp_v2 - - name: Run tests - run: npm run test - working-directory: webapp_v2 - diff --git a/alembic/versions/e6bb88859884_add_study_additional_data.py b/alembic/versions/e6bb88859884_add_study_additional_data.py new file mode 100644 index 0000000000..fc0438793c --- /dev/null +++ b/alembic/versions/e6bb88859884_add_study_additional_data.py @@ -0,0 +1,34 @@ +"""add_study_additional_data + +Revision ID: e6bb88859884 +Revises: ef72a8a1c9cf +Create Date: 2022-04-20 14:30:54.685433 + +""" +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = 'e6bb88859884' +down_revision = 'f83043f34a3f' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('study_additional_data', + sa.Column('study_id', sa.String(length=36), nullable=False), + sa.Column('author', sa.String(length=255), nullable=True), + sa.Column('horizon', sa.String(), nullable=True), + sa.Column('patch', sa.String(), nullable=True), + sa.ForeignKeyConstraint(['study_id'], ['study.id'], ), + sa.PrimaryKeyConstraint('study_id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('study_additional_data') + # ### end Alembic commands ### diff --git a/alembic/versions/f83043f34a3f_add_job_launcher_params.py b/alembic/versions/f83043f34a3f_add_job_launcher_params.py new file mode 100644 index 0000000000..55854524d7 --- /dev/null +++ b/alembic/versions/f83043f34a3f_add_job_launcher_params.py @@ -0,0 +1,32 @@ +"""add_job_launcher_params + +Revision ID: f83043f34a3f +Revises: ef72a8a1c9cf +Create Date: 2022-03-22 17:10:10.888752 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'f83043f34a3f' +down_revision = 'ef72a8a1c9cf' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('job_result', schema=None) as batch_op: + batch_op.add_column(sa.Column('launcher_params', sa.String(), nullable=True)) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('job_result', schema=None) as batch_op: + batch_op.drop_column('launcher_params') + + # ### end Alembic commands ### diff --git a/antarest/__init__.py b/antarest/__init__.py index bd97fb4930..12488d2aeb 100644 --- a/antarest/__init__.py +++ b/antarest/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.3.2" +__version__ = "2.4.0" from pathlib import Path diff --git a/antarest/core/config.py b/antarest/core/config.py index 31a6b200ac..2e3107b99e 100644 --- a/antarest/core/config.py +++ b/antarest/core/config.py @@ -197,6 +197,7 @@ class LauncherConfig: default: str = "local" local: Optional[LocalConfig] = LocalConfig() slurm: Optional[SlurmConfig] = SlurmConfig() + batch_size: int = 9999 @staticmethod def from_dict(data: JSON) -> "LauncherConfig": @@ -213,6 +214,7 @@ def from_dict(data: JSON) -> "LauncherConfig": default=data.get("default", "local"), local=local, slurm=slurm, + batch_size=data.get("batch_size", 9999), ) diff --git a/antarest/core/configdata/repository.py b/antarest/core/configdata/repository.py index ce8067823a..bdd773c71a 100644 --- a/antarest/core/configdata/repository.py +++ b/antarest/core/configdata/repository.py @@ -1,7 +1,10 @@ +import json from operator import and_ from typing import Optional from antarest.core.configdata.model import ConfigData +from antarest.core.jwt import DEFAULT_ADMIN_USER +from antarest.core.model import JSON from antarest.core.utils.fastapi_sqlalchemy import db @@ -12,10 +15,38 @@ def save(self, configdata: ConfigData) -> ConfigData: db.session.commit() return configdata - def get(self, key: str, owner: int) -> Optional[ConfigData]: + def get( + self, key: str, owner: Optional[int] = None + ) -> Optional[ConfigData]: configdata: ConfigData = ( db.session.query(ConfigData) - .filter(and_(ConfigData.owner == owner, ConfigData.key == key)) + .filter( + and_( + ConfigData.owner == (owner or DEFAULT_ADMIN_USER.id), + ConfigData.key == key, + ) + ) .first() ) return configdata + + def get_json( + self, key: str, owner: Optional[int] = None + ) -> Optional[JSON]: + configdata = self.get(key, owner) + if configdata: + data: JSON = json.loads(configdata.value) + return data + return None + + def put_json( + self, key: str, data: JSON, owner: Optional[int] = None + ) -> None: + configdata = ConfigData( + key=key, + value=json.dumps(data), + owner=owner or DEFAULT_ADMIN_USER.id, + ) + configdata = db.session.merge(configdata) + db.session.add(configdata) + db.session.commit() diff --git a/antarest/core/interfaces/cache.py b/antarest/core/interfaces/cache.py index 507a7d76da..1bbb07b949 100644 --- a/antarest/core/interfaces/cache.py +++ b/antarest/core/interfaces/cache.py @@ -8,9 +8,7 @@ class CacheConstants(Enum): RAW_STUDY = "RAW_STUDY" STUDY_FACTORY = "STUDY_FACTORY" - STUDY_LISTING_SUMMARY = "STUDY_LISTING_SUMMARY" STUDY_LISTING = "STUDY_LISTING" - STUDY_LISTING_SUMMARY_MANAGED = "STUDY_LISTING_SUMMARY_MANAGED" STUDY_LISTING_MANAGED = "STUDY_LISTING_MANAGED" diff --git a/antarest/core/jwt.py b/antarest/core/jwt.py index ed81c348ea..ef59a41da5 100644 --- a/antarest/core/jwt.py +++ b/antarest/core/jwt.py @@ -1,12 +1,12 @@ -from dataclasses import dataclass, field from typing import List, Union from pydantic import BaseModel -from antarest.core.model import JSON from antarest.core.roles import RoleType from antarest.login.model import Group, Identity +ADMIN_ID = 1 + class JWTGroup(BaseModel): """ @@ -28,6 +28,13 @@ class JWTUser(BaseModel): impersonator: int groups: List[JWTGroup] = [] + def is_admin_token(self) -> bool: + """ + Returns: true if the user is a bot of admin + + """ + return self.impersonator == ADMIN_ID + def is_site_admin(self) -> bool: """ Returns: true if connected user is admin @@ -85,8 +92,8 @@ def is_or_impersonate(self, user_id: int) -> bool: DEFAULT_ADMIN_USER = JWTUser( - id=1, - impersonator=1, + id=ADMIN_ID, + impersonator=ADMIN_ID, type="users", groups=[JWTGroup(id="admin", name="admin", role=RoleType.ADMIN)], ) diff --git a/antarest/core/logging/utils.py b/antarest/core/logging/utils.py index fa2787ec49..3f001e744e 100644 --- a/antarest/core/logging/utils.py +++ b/antarest/core/logging/utils.py @@ -68,6 +68,11 @@ def configure_logger(config: Config) -> None: "level": "INFO", "propagate": True, }, + "antarest.study.storage.rawstudy.watcher": { + "handlers": ["default"], + "level": "WARN", + "propagate": True, + }, }, } if config.logging.logfile is not None: diff --git a/antarest/core/permissions.py b/antarest/core/permissions.py index 0ed5a64497..e3a1a1135c 100644 --- a/antarest/core/permissions.py +++ b/antarest/core/permissions.py @@ -61,7 +61,7 @@ def check_permission( Returns: true if user match permission requirements, false else. """ - if user.is_site_admin(): + if user.is_site_admin() or user.is_admin_token(): return True if ( diff --git a/antarest/core/utils/utils.py b/antarest/core/utils/utils.py index c2e1084592..3dd462c621 100644 --- a/antarest/core/utils/utils.py +++ b/antarest/core/utils/utils.py @@ -1,7 +1,7 @@ import time from glob import escape from pathlib import Path -from typing import IO, Any, Optional, Callable, TypeVar +from typing import IO, Any, Optional, Callable, TypeVar, List from zipfile import ZipFile, BadZipFile import redis @@ -123,3 +123,11 @@ def retry( def assert_this(b: Any) -> None: if not b: raise AssertionError + + +def concat_files(files: List[Path], target: Path) -> None: + with open(target, "w") as fh: + for item in files: + with open(item, "r") as infile: + for line in infile: + fh.write(line) diff --git a/antarest/launcher/adapters/abstractlauncher.py b/antarest/launcher/adapters/abstractlauncher.py index 7f7e783364..06bc0eb6da 100644 --- a/antarest/launcher/adapters/abstractlauncher.py +++ b/antarest/launcher/adapters/abstractlauncher.py @@ -1,6 +1,6 @@ from abc import ABC, abstractmethod from pathlib import Path -from typing import Callable, NamedTuple, Optional, Dict +from typing import Callable, NamedTuple, Optional, Dict, List from antarest.core.config import Config from antarest.core.interfaces.eventbus import ( @@ -28,7 +28,7 @@ class LauncherCallbacks(NamedTuple): append_before_log: Callable[[str, str], None] append_after_log: Callable[[str, str], None] # args: job_id, output_path, additional_logs - import_output: Callable[[str, Path, Dict[str, Path]], Optional[str]] + import_output: Callable[[str, Path, Dict[str, List[Path]]], Optional[str]] class AbstractLauncher(ABC): diff --git a/antarest/launcher/adapters/log_manager.py b/antarest/launcher/adapters/log_manager.py index 50c1589d72..23955ebb31 100644 --- a/antarest/launcher/adapters/log_manager.py +++ b/antarest/launcher/adapters/log_manager.py @@ -15,6 +15,9 @@ def __init__(self, log_base_dir: Path) -> None: self.log_base_dir = log_base_dir self.tracked_logs: Dict[str, Thread] = {} + def is_tracking(self, log_path: Optional[Path]) -> bool: + return str(log_path) in self.tracked_logs if log_path else False + def track( self, log_path: Optional[Path], handler: Callable[[str], None] ) -> None: diff --git a/antarest/launcher/adapters/slurm_launcher/slurm_launcher.py b/antarest/launcher/adapters/slurm_launcher/slurm_launcher.py index 998e6efd02..a04e4fbe60 100644 --- a/antarest/launcher/adapters/slurm_launcher/slurm_launcher.py +++ b/antarest/launcher/adapters/slurm_launcher/slurm_launcher.py @@ -235,17 +235,29 @@ def _import_study_output( if xpansion_mode is not None: self._import_xpansion_result(job_id, xpansion_mode) - launcher_logs: Dict[str, Path] = {} + launcher_logs: Dict[str, List[Path]] = {} if log_dir is not None: launcher_logs = { log_name: log_path for log_name, log_path in { - "antares-out.log": SlurmLauncher._get_log_path_from_log_dir( - Path(log_dir), LogType.STDOUT - ), - "antares-err.log": SlurmLauncher._get_log_path_from_log_dir( - Path(log_dir), LogType.STDERR - ), + "antares-out.log": [ + p + for p in [ + SlurmLauncher._get_log_path_from_log_dir( + Path(log_dir), LogType.STDOUT + ) + ] + if p is not None + ], + "antares-err.log": [ + p + for p in [ + SlurmLauncher._get_log_path_from_log_dir( + Path(log_dir), LogType.STDERR + ) + ] + if p is not None + ], }.items() if log_path } diff --git a/antarest/launcher/extensions/adequacy_patch/extension.py b/antarest/launcher/extensions/adequacy_patch/extension.py index 5a8a419de7..9418dee860 100644 --- a/antarest/launcher/extensions/adequacy_patch/extension.py +++ b/antarest/launcher/extensions/adequacy_patch/extension.py @@ -1,13 +1,26 @@ +import json import logging import shutil from pathlib import Path -from typing import Optional, Any, cast +from typing import Optional, Any, cast, List, Dict import yaml +from filelock import FileLock +from antarest.core.config import Config +from antarest.core.configdata.model import ConfigData +from antarest.core.configdata.repository import ConfigDataRepository +from antarest.core.jwt import DEFAULT_ADMIN_USER from antarest.core.model import JSON +from antarest.core.requests import RequestParameters +from antarest.core.utils.fastapi_sqlalchemy import db from antarest.core.utils.utils import assert_this from antarest.launcher.extensions.interface import ILauncherExtension +from antarest.study.service import StudyService +from antarest.study.storage.rawstudy.model.filesystem.config.model import ( + transform_name_to_id, +) +from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.storage_service import StudyStorageService logger = logging.getLogger(__name__) @@ -16,8 +29,8 @@ class AdequacyPatchExtension(ILauncherExtension): EXTENSION_NAME = "adequacy_patch" - def __init__(self, storage_service: StudyStorageService): - self.storage_service = storage_service + def __init__(self, study_service: StudyService, config: Config): + self.study_service = study_service def get_name(self) -> str: return AdequacyPatchExtension.EXTENSION_NAME @@ -30,26 +43,113 @@ def after_export_flat_hook( launcher_opts: Any, ) -> None: logger.info("Applying adequacy patch postprocessing script") - post_processing_file = ( - Path(__file__).parent / "resources" / "post-processing.R" - ) - shutil.copy( - post_processing_file, study_export_path / "post-processing.R" - ) - self._check_config(study_id, study_export_path) - - def _check_config(self, study_id: str, study_export_path: Path) -> None: - ( - study_config, - study_tree, - ) = self.storage_service.raw_study_service.study_factory.create_from_fs( + study = self.study_service.storage_service.raw_study_service.study_factory.create_from_fs( study_export_path, study_id, use_cache=False ) - user_config = study_tree.get(["user"]) - assert_this("flowbased" in user_config or "Flowbased" in user_config) + user_config = study.tree.get(["user"]) + assert_this("flowbased" in user_config) adequacy_patch_config = yaml.safe_load( cast( - bytes, study_tree.get(["user", "adequacypatch", "config.yml"]) + bytes, study.tree.get(["user", "adequacypatch", "config.yml"]) ) ) assert_this("areas" in adequacy_patch_config) + self.prepare_study_for_adq_patch(job_id, study, adequacy_patch_config) + + full_r_version = "legacy" in launcher_opts and launcher_opts["legacy"] + if ( + "mode" in adequacy_patch_config + and adequacy_patch_config["mode"] == "legacy" + ): + full_r_version = True + + if full_r_version: + logger.info("Using legacy quadratic mode") + post_processing_file = ( + Path(__file__).parent + / "resources" + / "post-processing-legacy.R" + ) + else: + logger.info("Using linearized mode") + post_processing_file = ( + Path(__file__).parent / "resources" / "post-processing.R" + ) + shutil.copy( + post_processing_file, study_export_path / "post-processing.R" + ) + + def prepare_study_for_adq_patch( + self, job_id: str, study: FileStudy, adq_patch_config: JSON + ) -> Dict[str, bool]: + area_to_turn_on: List[str] = [ + transform_name_to_id(area_id) + for area_id in adq_patch_config.get("areas", []) + ] + original_area_enabled: Dict[str, bool] = {} + original_link_enabled: Dict[str, bool] = {} + for area_id, area in study.config.areas.items(): + # areas + original_area_enabled[area_id] = "hourly" in area.filters_year + if ( + not original_area_enabled[area_id] + and area_id in area_to_turn_on + ): + study.tree.save( + ", ".join([*area.filters_year, "hourly"]), + [ + "input", + "areas", + area_id, + "optimization", + "filtering", + "filter-year-by-year", + ], + ) + + # links + for area_2, link in area.links.items(): + link_id = f"{area_id} - {area_2}" + original_link_enabled[link_id] = "hourly" in link.filters_year + if not original_link_enabled[link_id] and ( + area_id in area_to_turn_on or area_2 in area_to_turn_on + ): + study.tree.save( + ", ".join([*link.filters_year, "hourly"]), + [ + "input", + "links", + area_id, + "properties", + area_2, + "filter-year-by-year", + ], + ) + + with db(): + with open( + study.config.study_path + / "user" + / "adequacypatch" + / "hourly-areas.yml", + "w", + ) as fh: + yaml.dump(original_area_enabled, fh) + with open( + study.config.study_path + / "user" + / "adequacypatch" + / "hourly-links.yml", + "w", + ) as fh: + yaml.dump(original_link_enabled, fh) + return original_area_enabled + + def before_import_hook( + self, + job_id: str, + study_id: str, + study_output_path: Path, + ext_opts: Any, + ) -> None: + pass diff --git a/antarest/launcher/extensions/adequacy_patch/resources/post-processing-legacy.R b/antarest/launcher/extensions/adequacy_patch/resources/post-processing-legacy.R new file mode 100644 index 0000000000..624d60862a --- /dev/null +++ b/antarest/launcher/extensions/adequacy_patch/resources/post-processing-legacy.R @@ -0,0 +1,73 @@ +library(AdequacyPatch) +library(antaresRead) +library(yaml) +library(parallel) +library(data.table) + +opts <- setSimulationPath(".") + +print(readLayout(opts = opts)) + +config <- read_yaml("user/adequacypatch/config.yml", fileEncoding = "UTF-8", text) +areas = config$areas +virutal_areas = config$areas +mcYears = config$mcYears +antaresfbzone = config$antaresfbzone +thresholdFilter = config$thresholdFilter +core_ahc = config$core_ahc +calculate_mc_all = config$calculate_mc_all +extension = config$extension +nbcore = config$nbcore + +run_adq(opts = opts, + areas = areas, + virtual_areas = areas, + mcYears = mcYears, + antaresfbzone = antaresfbzone, + ext = extension, + nbcl = nbcore, thresholdFilter = thresholdFilter, + core_ahc = core_ahc) + +areas <- read_yaml("user/adequacypatch/hourly-areas.yml", fileEncoding = "UTF-8", text) +links <- read_yaml("user/adequacypatch/hourly-links.yml", fileEncoding = "UTF-8", text) + + +remove_data <- function(path_prefix, data_type, data_list, include_id) { + for (item in names(data_list)) { + if (!data_list[[item]]) { + item_data <- paste(c(path_prefix, data_type, item), collapse="/") + cat(paste0("Removing from ", data_type, " ", item, " in ", path_prefix, "\n")) + unlink(file.path(paste0(item_data, "values-hourly.txt", collapse="/"))) + if (include_id) { + unlink(file.path(paste0(item_data, "id-hourly.txt", collapse="/"))) + } + unlink(file.path(paste0(item_data, "details-hourly.txt", collapse="/"))) + if (length(list.files(file.path(item_data))) == 0) { + unlink(file.path(item_data)) + } + } + } +} + +for (output in list.files("output")) { + for (run_type in c("economy", "adequacy", "adequacy-draft")) { + output_data <- paste(c("output", output, run_type), collapse="/") + if (file.exists(output_data)) { + # mc ind + mc_data <- paste(c(output_data, "mc-ind"), collapse="/") + if (file.exists(mc_data)) { + for (mc_year in list.files(file.path(mc_data))) { + remove_data(c(mc_data, mc_year), "areas", areas, FALSE) + remove_data(c(mc_data, mc_year), "links", links, FALSE) + } + } + # mc all + mc_data <- paste(c(output_data, "mc-all"), collapse="/") + if (file.exists(mc_data)) { + remove_data(mc_data, "areas", areas, TRUE) + remove_data(mc_data, "links", links, TRUE) + } + } + } +} + diff --git a/antarest/launcher/extensions/adequacy_patch/resources/post-processing.R b/antarest/launcher/extensions/adequacy_patch/resources/post-processing.R index 9dfd125e55..25147a71c0 100644 --- a/antarest/launcher/extensions/adequacy_patch/resources/post-processing.R +++ b/antarest/launcher/extensions/adequacy_patch/resources/post-processing.R @@ -1,6 +1,8 @@ library(AdequacyPatch) library(antaresRead) library(yaml) +library(parallel) +library(data.table) opts <- setSimulationPath(".") @@ -8,13 +10,66 @@ print(readLayout(opts = opts)) config <- read_yaml("user/adequacypatch/config.yml", fileEncoding = "UTF-8", text) +areas = config$areas +virutal_areas = config$areas +mcYears = config$mcYears +antaresfbzone = config$antaresfbzone +thresholdFilter = config$thresholdFilter +core_ahc = config$core_ahc +calculate_mc_all = config$calculate_mc_all +extension = config$extension +nbcore = config$nbcore + run_adq(opts = opts, - areas = config$areas, - virtual_areas = config$areas, - mcYears = config$mcYears, - antaresfbzone = config$antaresfbzone, - ext = NULL, - nbcl = 1, thresholdFilter = config$thresholdFilter, - core_ahc = config$core_ahc, - calculate_mc_all = config$calculate_mc_all, - log_detail = TRUE) \ No newline at end of file + areas = areas, + virtual_areas = areas, + mcYears = mcYears, + antaresfbzone = antaresfbzone, + ext = extension, + nbcl = nbcore, thresholdFilter = thresholdFilter, + core_ahc = core_ahc, + calculate_mc_all = calculate_mc_all, + log_detail = TRUE) + +areas <- read_yaml("user/adequacypatch/hourly-areas.yml", fileEncoding = "UTF-8", text) +links <- read_yaml("user/adequacypatch/hourly-links.yml", fileEncoding = "UTF-8", text) + +remove_data <- function(path_prefix, data_type, data_list, include_id) { + for (item in names(data_list)) { + if (!data_list[[item]]) { + item_data <- paste(c(path_prefix, data_type, item), collapse="/") + cat(paste0("Removing from ", data_type, " ", item, " in ", path_prefix, "\n")) + unlink(file.path(paste0(item_data, "values-hourly.txt", collapse="/"))) + if (include_id) { + unlink(file.path(paste0(item_data, "id-hourly.txt", collapse="/"))) + } + unlink(file.path(paste0(item_data, "details-hourly.txt", collapse="/"))) + if (length(list.files(file.path(item_data))) == 0) { + unlink(file.path(item_data)) + } + } + } +} + +for (output in list.files("output")) { + for (run_type in c("economy", "adequacy", "adequacy-draft")) { + output_data <- paste(c("output", output, run_type), collapse="/") + if (file.exists(output_data)) { + # mc ind + mc_data <- paste(c(output_data, "mc-ind"), collapse="/") + if (file.exists(mc_data)) { + for (mc_year in list.files(file.path(mc_data))) { + remove_data(c(mc_data, mc_year), "areas", areas, FALSE) + remove_data(c(mc_data, mc_year), "links", links, FALSE) + } + } + # mc all + mc_data <- paste(c(output_data, "mc-all"), collapse="/") + if (file.exists(mc_data)) { + remove_data(mc_data, "areas", areas, TRUE) + remove_data(mc_data, "links", links, TRUE) + } + } + } +} + diff --git a/antarest/launcher/extensions/interface.py b/antarest/launcher/extensions/interface.py index 97803a3080..29fae93367 100644 --- a/antarest/launcher/extensions/interface.py +++ b/antarest/launcher/extensions/interface.py @@ -19,3 +19,13 @@ def after_export_flat_hook( ext_opts: Any, ) -> None: pass + + @abstractmethod + def before_import_hook( + self, + job_id: str, + study_id: str, + study_output_path: Path, + ext_opts: Any, + ) -> None: + pass diff --git a/antarest/launcher/model.py b/antarest/launcher/model.py index 02db25ff0f..96e9693209 100644 --- a/antarest/launcher/model.py +++ b/antarest/launcher/model.py @@ -31,6 +31,7 @@ class JobResultDTO(BaseModel): id: str study_id: str launcher: Optional[str] + launcher_params: Optional[str] status: JobStatus creation_date: str completion_date: Optional[str] @@ -72,6 +73,7 @@ class JobResult(DTO, Base): # type: ignore id = Column(String(36), primary_key=True) study_id = Column(String(36)) launcher = Column(String) + launcher_params = Column(String, nullable=True) job_status = Column(Enum(JobStatus)) creation_date = Column(DateTime, default=datetime.utcnow) completion_date = Column(DateTime) @@ -87,6 +89,7 @@ def to_dto(self) -> JobResultDTO: id=self.id, study_id=self.study_id, launcher=self.launcher, + launcher_params=self.launcher_params, status=self.job_status, creation_date=str(self.creation_date), completion_date=str(self.completion_date) diff --git a/antarest/launcher/service.py b/antarest/launcher/service.py index d425ecd690..023b8ab7b8 100644 --- a/antarest/launcher/service.py +++ b/antarest/launcher/service.py @@ -1,3 +1,4 @@ +import json import logging import os import shutil @@ -29,7 +30,7 @@ from antarest.core.tasks.model import TaskResult, TaskType from antarest.core.tasks.service import TaskUpdateNotifier, ITaskService from antarest.core.utils.fastapi_sqlalchemy import db -from antarest.core.utils.utils import assert_this +from antarest.core.utils.utils import assert_this, concat_files from antarest.launcher.adapters.abstractlauncher import LauncherCallbacks from antarest.launcher.adapters.factory_launcher import FactoryLauncher from antarest.launcher.extensions.adequacy_patch.extension import ( @@ -56,6 +57,7 @@ create_permission_from_study, extract_output_name, fix_study_root, + find_single_output_path, ) logger = logging.getLogger(__name__) @@ -112,14 +114,14 @@ def __init__( def _init_extensions(self) -> Dict[str, ILauncherExtension]: adequacy_patch_ext = AdequacyPatchExtension( - self.study_service.storage_service + self.study_service, self.config ) return {adequacy_patch_ext.get_name(): adequacy_patch_ext} def get_launchers(self) -> List[str]: return list(self.launchers.keys()) - def after_export_flat_hooks( + def _after_export_flat_hooks( self, job_id: str, study_id: str, @@ -141,6 +143,28 @@ def after_export_flat_hooks( launcher_opts.get(ext), ) + def _before_import_hooks( + self, + job_id: str, + study_id: str, + study_output_path: Path, + launcher_opts: Optional[JSON], + ) -> None: + for ext in self.extensions: + if ( + launcher_opts is not None + and launcher_opts.get(ext, None) is not None + ): + logger.info( + f"Applying extension {ext} before_import_hook on job {job_id}" + ) + self.extensions[ext].before_import_hook( + job_id, + study_id, + study_output_path, + launcher_opts.get(ext), + ) + def update( self, job_uuid: str, @@ -229,6 +253,9 @@ def run_study( study_id=study_uuid, job_status=JobStatus.PENDING, launcher=launcher, + launcher_params=json.dumps(launcher_parameters) + if launcher_parameters + else None, ) self.job_result_repository.save(job_status) @@ -446,7 +473,7 @@ def _export_study( outputs=False, ) self.append_log(job_id, "Study extracted", JobLogType.BEFORE) - self.after_export_flat_hooks( + self._after_export_flat_hooks( job_id, study_id, target_path, launcher_params ) @@ -454,7 +481,10 @@ def _get_job_output_fallback_path(self, job_id: str) -> Path: return self.config.storage.tmp_dir / f"output_{job_id}" def _import_fallback_output( - self, job_id: str, output_path: Path, additional_logs: Dict[str, Path] + self, + job_id: str, + output_path: Path, + additional_logs: Dict[str, List[Path]], ) -> Optional[str]: logger.info( f"Trying to import output in fallback tmp space for job {job_id}" @@ -469,9 +499,10 @@ def _import_fallback_output( output_name = extract_output_name(imported_output) imported_output.rename(Path(job_output_path, output_name)) if additional_logs: - for log_name, log_path in additional_logs.items(): - shutil.copyfile( - log_path, Path(job_output_path, output_name) / log_name + for log_name, log_paths in additional_logs.items(): + concat_files( + log_paths, + Path(job_output_path, output_name) / log_name, ) except Exception as e: logger.error( @@ -481,22 +512,34 @@ def _import_fallback_output( return output_name def _import_output( - self, job_id: str, output_path: Path, additional_logs: Dict[str, Path] + self, + job_id: str, + output_path: Path, + additional_logs: Dict[str, List[Path]], ) -> Optional[str]: logger.info(f"Importing output for job {job_id}") with db(): job_result = self.job_result_repository.get(job_id) if job_result: + output_true_path = find_single_output_path(output_path) + self._before_import_hooks( + job_id, + job_result.study_id, + output_true_path, + json.loads(job_result.launcher_params) + if job_result.launcher_params + else None, + ) try: return self.study_service.import_output( job_result.study_id, - output_path, + output_true_path, RequestParameters(DEFAULT_ADMIN_USER), additional_logs, ) except StudyNotFoundError: return self._import_fallback_output( - job_id, output_path, additional_logs + job_id, output_true_path, additional_logs ) raise JobNotFound() diff --git a/antarest/launcher/web.py b/antarest/launcher/web.py index 9492602690..6832c54efa 100644 --- a/antarest/launcher/web.py +++ b/antarest/launcher/web.py @@ -167,7 +167,7 @@ def get_engines() -> Any: @bp.get( "/launcher/_versions", tags=[APITag.launcher], - summary="Get list of supported study version for all configures launchers", + summary="Get list of supported study version for all configured launchers", response_model=Dict[str, List[str]], ) def get_versions( diff --git a/antarest/login/main.py b/antarest/login/main.py index 4fae38a9a8..ac970630a1 100644 --- a/antarest/login/main.py +++ b/antarest/login/main.py @@ -10,6 +10,7 @@ from antarest.core.config import Config from antarest.core.interfaces.eventbus import IEventBus, DummyEventBusService +from antarest.core.utils.fastapi_sqlalchemy import db from antarest.login.ldap import LdapService from antarest.login.repository import ( UserRepository, @@ -77,11 +78,12 @@ def check_if_token_is_revoked(decrypted_token: Any) -> bool: subject = json.loads(decrypted_token["sub"]) user_id = subject["id"] token_type = subject["type"] - return ( - token_type == "bots" - and service is not None - and not service.exists_bot(user_id) - ) + with db(): + return ( + token_type == "bots" + and service is not None + and not service.exists_bot(user_id) + ) if application: application.include_router(create_login_api(service, config)) diff --git a/antarest/login/model.py b/antarest/login/model.py index 5c3c88b4a6..8e07e5b479 100644 --- a/antarest/login/model.py +++ b/antarest/login/model.py @@ -82,8 +82,7 @@ class UserRoleDTO(BaseModel): role: RoleType -class UserGroup(BaseModel): - group: GroupDTO +class GroupDetailDTO(GroupDTO): users: List[UserRoleDTO] diff --git a/antarest/login/repository.py b/antarest/login/repository.py index 369b9cc418..e7b0db0427 100644 --- a/antarest/login/repository.py +++ b/antarest/login/repository.py @@ -4,6 +4,7 @@ from sqlalchemy import exists # type: ignore from antarest.core.config import Config +from antarest.core.jwt import ADMIN_ID from antarest.core.roles import RoleType from antarest.core.utils.fastapi_sqlalchemy import db from antarest.login.model import ( @@ -70,7 +71,7 @@ def __init__(self, config: Config) -> None: if admin_user is None: self.save( User( - id=1, + id=ADMIN_ID, name="admin", password=Password(config.security.admin_pwd), ) diff --git a/antarest/login/service.py b/antarest/login/service.py index 62ca42c329..d25af43ced 100644 --- a/antarest/login/service.py +++ b/antarest/login/service.py @@ -1,5 +1,5 @@ import logging -from typing import Optional, List +from typing import Optional, List, Union from fastapi import HTTPException @@ -24,9 +24,10 @@ RoleDTO, RoleCreationDTO, BotIdentityDTO, - UserGroup, + GroupDetailDTO, UserRoleDTO, GroupDTO, + UserInfo, ) from antarest.login.repository import ( UserRepository, @@ -292,7 +293,7 @@ def get_group(self, id: str, params: RequestParameters) -> Optional[Group]: def get_group_info( self, id: str, params: RequestParameters - ) -> Optional[UserGroup]: + ) -> Optional[GroupDetailDTO]: """ Get group. Permission: SADMIN, GADMIN (own group) @@ -314,8 +315,8 @@ def get_group_info( user_list.append( UserRoleDTO(id=user.id, name=user.name, role=role.type) ) - return UserGroup( - group=GroupDTO(id=group.id, name=group.name), users=user_list + return GroupDetailDTO( + id=group.id, name=group.name, users=user_list ) else: logger.error( @@ -563,33 +564,51 @@ def get_jwt(self, user_id: int) -> Optional[JWTUser]: logger.error("Can't claim JWT for user=%d", user_id) return None - def get_all_groups(self, params: RequestParameters) -> List[Group]: + def get_all_groups( + self, params: RequestParameters, details: Optional[bool] = False + ) -> List[Union[GroupDetailDTO, GroupDTO]]: """ Get all groups. Permission: SADMIN Args: params: request parameters + details: get all user information, including users Returns: list of groups """ - if not params.user: + if params.user: + group_list = [] + + if params.user.is_site_admin(): + group_list = self.groups.get_all() + else: + roles_by_user = self.roles.get_all_by_user(user=params.user.id) + + for role in roles_by_user: + if not details or role.type == RoleType.ADMIN: + tmp = self.groups.get(role.group_id) + if tmp: + group_list.append(tmp) + else: logger.error( "user %s has not permission to get all groups", params.get_user_id(), ) raise UserHasNotPermissionError() - if params.user.is_site_admin(): - return self.groups.get_all() - else: - roles_by_user = self.roles.get_all_by_user(user=params.user.id) - groups = [] - for role in roles_by_user: - tmp = self.groups.get(role.group_id) - if tmp: - groups.append(tmp) - return groups + return ( + [ + grp + for grp in [ + self.get_group_info(group.id, params) + for group in group_list + ] + if grp is not None + ] + if details + else [group.to_dto() for group in group_list] + ) def _get_user_by_group(self, group: str) -> List[Identity]: roles = self.roles.get_all_by_group(group) @@ -600,17 +619,21 @@ def _get_user_by_group(self, group: str) -> List[Identity]: user_list.append(user) return user_list - def get_all_users(self, params: RequestParameters) -> List[Identity]: + def get_all_users( + self, params: RequestParameters, details: Optional[bool] = False + ) -> List[Union[UserInfo, IdentityDTO]]: """ Get all users. Permission: SADMIN Args: params: request parameters + details: get all user information, including roles Returns: list of groups """ if params.user: + user_list = [] roles = self.roles.get_all_by_user(params.user.id) groups = [r.group for r in roles] if any( @@ -619,18 +642,29 @@ def get_all_users(self, params: RequestParameters) -> List[Identity]: params.user.is_group_admin(groups), ) ): - return self.ldap.get_all() + self.users.get_all() + user_list = self.ldap.get_all() + self.users.get_all() + else: + for group in groups: + user_list.extend( + [ + usr + for usr in self._get_user_by_group(group.id) + if usr not in user_list + ] + ) - user_list = [] - for group in groups: - user_list.extend( - [ - usr - for usr in self._get_user_by_group(group.id) - if usr not in user_list + return ( + [ + usr + for usr in [ + self.get_user_info(user.id, params) + for user in user_list ] - ) - return user_list + if usr is not None + ] + if details + else [user.to_dto() for user in user_list] + ) else: logger.error( "user %s has not permission to get all users", diff --git a/antarest/login/web.py b/antarest/login/web.py index fa5a05e540..f88afb8736 100644 --- a/antarest/login/web.py +++ b/antarest/login/web.py @@ -29,7 +29,7 @@ BotDTO, BotIdentityDTO, RoleDetailDTO, - UserGroup, + GroupDetailDTO, IdentityDTO, ) from antarest.login.service import LoginService @@ -114,13 +114,18 @@ def refresh(jwt_manager: AuthJWT = Depends()) -> Any: else: raise HTTPException(status_code=403, detail="Token invalid") - @bp.get("/users", tags=[APITag.users], response_model=List[UserInfo]) + @bp.get( + "/users", + tags=[APITag.users], + response_model=List[Union[IdentityDTO, UserInfo]], + ) def users_get_all( + details: Optional[bool] = False, current_user: JWTUser = Depends(auth.get_current_user), ) -> Any: logger.info(f"Fetching users list", extra={"user": current_user.id}) params = RequestParameters(user=current_user) - return [u.to_dto() for u in service.get_all_users(params)] + return service.get_all_users(params, details) @bp.get( "/users/{id}", @@ -197,18 +202,23 @@ def roles_delete_by_user( service.delete_all_roles_from_user(id, params) return id - @bp.get("/groups", tags=[APITag.users], response_model=List[GroupDTO]) + @bp.get( + "/groups", + tags=[APITag.users], + response_model=List[Union[GroupDetailDTO, GroupDTO]], + ) def groups_get_all( + details: Optional[bool] = False, current_user: JWTUser = Depends(auth.get_current_user), ) -> Any: logger.info(f"Fetching groups list", extra={"user": current_user.id}) params = RequestParameters(user=current_user) - return [g.to_dto() for g in service.get_all_groups(params)] + return service.get_all_groups(params, details) @bp.get( "/groups/{id}", tags=[APITag.users], - response_model=Union[UserGroup, GroupDTO], # type: ignore + response_model=Union[GroupDetailDTO, GroupDTO], # type: ignore ) def groups_get_id( id: str, diff --git a/antarest/main.py b/antarest/main.py index 7204994b7a..bda9501063 100644 --- a/antarest/main.py +++ b/antarest/main.py @@ -505,6 +505,17 @@ def handle_all_exception(request: Request, exc: Exception) -> Any: return application, services +def create_env(config_file: Path) -> Dict[str, Any]: + """ + Create application services env for testing and scripting purpose + """ + res = get_local_path() / "resources" + config = Config.from_yaml_file(res=res, file=config_file) + configure_logger(config) + init_db(config_file, config, False, None) + return create_services(config, None) + + if __name__ == "__main__": ( config_file, diff --git a/antarest/study/business/area_management.py b/antarest/study/business/area_management.py index 739a69f765..2d5861ce35 100644 --- a/antarest/study/business/area_management.py +++ b/antarest/study/business/area_management.py @@ -1,11 +1,8 @@ from enum import Enum -from typing import Optional, Dict, List, Tuple +from typing import Optional, Dict, List, Tuple, Any from pydantic import BaseModel -from antarest.core.exceptions import CommandApplicationError -from antarest.core.jwt import DEFAULT_ADMIN_USER -from antarest.core.requests import RequestParameters from antarest.study.business.utils import execute_or_add_commands from antarest.study.model import ( RawStudy, @@ -14,6 +11,7 @@ PatchCluster, Study, ) +from antarest.study.repository import StudyMetadataRepository from antarest.study.storage.patch_service import PatchService from antarest.study.storage.rawstudy.model.filesystem.config.model import ( Area, @@ -22,9 +20,6 @@ ) from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.storage_service import StudyStorageService -from antarest.study.storage.variantstudy.model.command.common import ( - CommandName, -) from antarest.study.storage.variantstudy.model.command.create_area import ( CreateArea, ) @@ -34,7 +29,6 @@ from antarest.study.storage.variantstudy.model.command.update_config import ( UpdateConfig, ) -from antarest.study.storage.variantstudy.model.model import CommandDTO class AreaType(Enum): @@ -52,8 +46,8 @@ class AreaCreationDTO(BaseModel): class ClusterInfoDTO(PatchCluster): id: str name: str - unitcount: int - nominalcapacity: int + unitcount: int = 0 + nominalcapacity: int = 0 group: Optional[str] = None min_stable_power: Optional[int] = None min_up_time: Optional[int] = None @@ -76,9 +70,13 @@ class AreaUI(BaseModel): class AreaManager: - def __init__(self, storage_service: StudyStorageService) -> None: + def __init__( + self, + storage_service: StudyStorageService, + repository: StudyMetadataRepository, + ) -> None: self.storage_service = storage_service - self.patch_service = PatchService() + self.patch_service = PatchService(repository=repository) def get_all_areas( self, study: RawStudy, area_type: Optional[AreaType] = None @@ -118,6 +116,13 @@ def get_all_areas( return result + def get_all_areas_ui_info(self, study: RawStudy) -> Dict[str, Any]: + storage_service = self.storage_service.get_storage(study) + file_study = storage_service.get_raw(study) + return file_study.tree.get( + ["input", "areas", ",".join(file_study.config.areas.keys()), "ui"] + ) + def create_area( self, study: Study, area_creation_info: AreaCreationDTO ) -> AreaInfoDTO: diff --git a/antarest/study/business/utils.py b/antarest/study/business/utils.py index 18cb60ee23..ef83062ae3 100644 --- a/antarest/study/business/utils.py +++ b/antarest/study/business/utils.py @@ -24,9 +24,11 @@ def execute_or_add_commands( if not result.status: for i in range(0, len(executed_commands)): executed_command = executed_commands[i] - executed_command.revert( + revert_command_list = executed_command.revert( history=executed_commands[i + 1 :], base=file_study ) + for revert_command in revert_command_list: + revert_command.apply(file_study) raise CommandApplicationError(result.message) executed_commands.append(command) remove_from_cache(storage_service.raw_study_service.cache, study.id) diff --git a/antarest/study/business/xpansion_management.py b/antarest/study/business/xpansion_management.py index 8a1ce4bdf0..9a0bbb7ce6 100644 --- a/antarest/study/business/xpansion_management.py +++ b/antarest/study/business/xpansion_management.py @@ -1,11 +1,15 @@ import logging +import shutil from enum import Enum from http import HTTPStatus +from io import BytesIO from typing import Optional, Union, List, cast +from zipfile import ZipFile, BadZipFile from fastapi import HTTPException, UploadFile from pydantic import Field, BaseModel +from antarest.core.exceptions import BadZipBinary from antarest.core.model import JSON from antarest.study.model import Study from antarest.study.storage.rawstudy.model.filesystem.bucket_node import ( @@ -20,6 +24,7 @@ Expansion, ) from antarest.study.storage.storage_service import StudyStorageService +from antarest.study.storage.utils import fix_study_root logger = logging.getLogger(__name__) @@ -105,6 +110,16 @@ def __init__(self, message: str) -> None: super().__init__(HTTPStatus.BAD_REQUEST, message) +class CandidateNameIsEmpty(HTTPException): + def __init__(self) -> None: + super().__init__(HTTPStatus.BAD_REQUEST) + + +class WrongTypeFormat(HTTPException): + def __init__(self, message: str) -> None: + super().__init__(HTTPStatus.BAD_REQUEST, message) + + class WrongLinkFormatError(HTTPException): def __init__(self, message: str) -> None: super().__init__(HTTPStatus.BAD_REQUEST, message) @@ -144,7 +159,9 @@ class XpansionManager: def __init__(self, study_storage_service: StudyStorageService): self.study_storage_service = study_storage_service - def create_xpansion_configuration(self, study: Study) -> None: + def create_xpansion_configuration( + self, study: Study, zipped_config: Optional[UploadFile] = None + ) -> None: logger.info( f"Initiating xpansion configuration for study '{study.id}'" ) @@ -155,11 +172,33 @@ def create_xpansion_configuration(self, study: Study) -> None: file_study.tree.get(["user", "expansion"]) logger.info(f"Using existing configuration for study '{study.id}'") except ChildNotFoundError: + if zipped_config: + try: + with ZipFile( + BytesIO(zipped_config.file.read()) + ) as zip_output: + logger.info( + f"Importing zipped xpansion configuration for study '{study.id}'" + ) + zip_output.extractall( + path=file_study.config.path / "user" / "expansion" + ) + fix_study_root( + file_study.config.path / "user" / "expansion" + ) + return + except BadZipFile: + shutil.rmtree( + file_study.config.path / "user" / "expansion", + ignore_errors=True, + ) + raise BadZipBinary("Only zip file are allowed.") + study_version = file_study.config.version xpansion_settings = { "optimality_gap": 1, - "max_iteration": float("inf"), + "max_iteration": "inf", "uc_type": "expansion_fast", "master": "integer", "yearly-weights": None, @@ -168,7 +207,7 @@ def create_xpansion_configuration(self, study: Study) -> None: if study_version < 800: xpansion_settings["relaxed-optimality-gap"] = 1e6 - xpansion_settings["cut-type"] = "average" + xpansion_settings["cut-type"] = "yearly" xpansion_settings["ampl.solver"] = "cbc" xpansion_settings["ampl.presolve"] = 0 xpansion_settings["ampl.solve_bounds_frequency"] = 1000000 @@ -222,6 +261,28 @@ def _assert_xpansion_settings_additional_constraints_is_valid( f"The 'additional-constraints' file '{additional_constraints}' does not exist" ) + def _assert_is_positive( + self, + name: str, + param: Union[float, int], + ) -> None: + if param < 0: + raise WrongTypeFormat( + f"'{name}' must be a float greater than or equal to 0" + ) + + def _assert_max_iteration_is_valid( + self, max_iteration: Union[int, MaxIteration] + ) -> None: + if ( + isinstance(max_iteration, int) + and max_iteration < 0 + or cast(str, max_iteration) != MaxIteration.INF + ): + raise WrongTypeFormat( + "'max_iteration' must be an integer greater than or equal to 0 OR '+Inf'" + ) + def update_xpansion_settings( self, study: Study, new_xpansion_settings_dto: XpansionSettingsDTO ) -> XpansionSettingsDTO: @@ -229,6 +290,20 @@ def update_xpansion_settings( file_study = self.study_storage_service.get_storage(study).get_raw( study ) + if new_xpansion_settings_dto.optimality_gap is not None: + self._assert_is_positive( + "optimality_gap", new_xpansion_settings_dto.optimality_gap + ) + if new_xpansion_settings_dto.relative_gap is not None: + self._assert_is_positive( + "relative_gap", new_xpansion_settings_dto.relative_gap + ) + if new_xpansion_settings_dto.max_iteration is not None and isinstance( + new_xpansion_settings_dto.max_iteration, int + ): + self._assert_is_positive( + "max_iteration", new_xpansion_settings_dto.max_iteration + ) if new_xpansion_settings_dto.additional_constraints: self._assert_xpansion_settings_additional_constraints_is_valid( file_study, new_xpansion_settings_dto.additional_constraints @@ -301,6 +376,8 @@ def _assert_no_illegal_character_is_in_candidate_name( "(", ")", ] + if xpansion_candidate_name.strip() == "": + raise CandidateNameIsEmpty() for char in illegal_chars: if char in xpansion_candidate_name: raise IllegalCharacterInNameError( @@ -335,8 +412,7 @@ def _assert_investment_candidate_is_valid( ) ): raise BadCandidateFormatError( - f"The candidate is not well formatted." - f"It should either contain max-investment or (max-units and unit-size)." + "The candidate is not well formatted.\nIt should either contain max-investment or (max-units and unit-size)." ) def _assert_candidate_is_correct( @@ -347,8 +423,6 @@ def _assert_candidate_is_correct( new_name: bool = False, ) -> None: logger.info(f"Checking given candidate is correct") - self._assert_link_profile_are_files(file_study, xpansion_candidate_dto) - self._assert_link_exist(file_study, xpansion_candidate_dto) self._assert_no_illegal_character_is_in_candidate_name( xpansion_candidate_dto.name ) @@ -356,11 +430,38 @@ def _assert_candidate_is_correct( self._assert_candidate_name_is_not_already_taken( candidates, xpansion_candidate_dto.name ) + self._assert_link_profile_are_files(file_study, xpansion_candidate_dto) + self._assert_link_exist(file_study, xpansion_candidate_dto) self._assert_investment_candidate_is_valid( xpansion_candidate_dto.max_investment, xpansion_candidate_dto.max_units, xpansion_candidate_dto.unit_size, ) + if xpansion_candidate_dto.annual_cost_per_mw: + self._assert_is_positive( + "annual_cost_per_mw", xpansion_candidate_dto.annual_cost_per_mw + ) + else: + raise BadCandidateFormatError( + "The candidate is not well formatted.\nIt should contain annual-cost-per-mw." + ) + if xpansion_candidate_dto.unit_size is not None: + self._assert_is_positive( + "unit_size", xpansion_candidate_dto.unit_size + ) + if xpansion_candidate_dto.max_investment is not None: + self._assert_is_positive( + "max_investment", xpansion_candidate_dto.max_investment + ) + if xpansion_candidate_dto.already_installed_capacity is not None: + self._assert_is_positive( + "already_installed_capacity", + xpansion_candidate_dto.already_installed_capacity, + ) + if xpansion_candidate_dto.max_units is not None: + self._assert_is_positive( + "max_units", xpansion_candidate_dto.max_units + ) def add_candidate( self, study: Study, xpansion_candidate_dto: XpansionCandidateDTO diff --git a/antarest/study/common/studystorage.py b/antarest/study/common/studystorage.py index 375e61d595..bb93cdc7c3 100644 --- a/antarest/study/common/studystorage.py +++ b/antarest/study/common/studystorage.py @@ -110,18 +110,22 @@ def import_output( raise NotImplementedError() @abstractmethod - def get_study_information( - self, metadata: T, summary: bool = False - ) -> StudyMetadataDTO: + def get_study_information(self, metadata: T) -> StudyMetadataDTO: raise NotImplementedError() @abstractmethod - def get_raw(self, metadata: T, use_cache: bool = True) -> FileStudy: + def get_raw( + self, + metadata: T, + use_cache: bool = True, + output_dir: Optional[Path] = None, + ) -> FileStudy: """ Fetch a study raw tree object and its config Args: metadata: study use_cache: use cache + output_dir: optional output dir override Returns: the config and study tree object """ @@ -265,3 +269,7 @@ def get_synthesis( """ raise NotImplementedError() + + @abstractmethod + def initialize_additional_data(self, study: T) -> bool: + raise NotImplementedError() diff --git a/antarest/study/main.py b/antarest/study/main.py index 3514d4adfc..50ca9332bf 100644 --- a/antarest/study/main.py +++ b/antarest/study/main.py @@ -88,7 +88,7 @@ def build_study_service( metadata_repository = metadata_repository or StudyMetadataRepository(cache) variant_repository = variant_repository or VariantStudyRepository(cache) - patch_service = patch_service or PatchService() + patch_service = patch_service or PatchService(metadata_repository) raw_study_service = RawStudyService( config=config, @@ -105,6 +105,7 @@ def build_study_service( command_factory = CommandFactory( generator_matrix_constants=generator_matrix_constants, matrix_service=matrix_service, + patch_service=patch_service, ) variant_study_service = VariantStudyService( task_service=task_service, diff --git a/antarest/study/model.py b/antarest/study/model.py index 4efc859c25..56aa60a167 100644 --- a/antarest/study/model.py +++ b/antarest/study/model.py @@ -48,6 +48,35 @@ class CommentsDto(BaseModel): comments: str +@dataclass +class StudyAdditionalData(Base): # type:ignore + """ + Study additional data + """ + + __tablename__ = "study_additional_data" + + study_id = Column( + String(36), + ForeignKey("study.id"), + primary_key=True, + ) + author = Column(String(255), default="Unknown") + horizon = Column(String) + patch = Column(String(), nullable=True) + + def __eq__(self, other: Any) -> bool: + if not super().__eq__(other): + return False + if not isinstance(other, StudyAdditionalData): + return False + return bool( + other.author == self.author + and other.horizon == self.horizon + and other.patch == self.patch + ) + + @dataclass class Study(Base): # type: ignore """ @@ -77,6 +106,11 @@ class Study(Base): # type: ignore archived = Column(Boolean(), default=False) owner = relationship(Identity, uselist=False) groups = relationship(Group, secondary=lambda: groups_metadata, cascade="") + additional_data = relationship( + StudyAdditionalData, + uselist=False, + cascade="all, delete, delete-orphan", + ) __mapper_args__ = {"polymorphic_identity": "study", "polymorphic_on": type} def __str__(self) -> str: @@ -211,6 +245,7 @@ class StudyMetadataDTO(BaseModel): class StudyMetadataPatchDTO(BaseModel): name: Optional[str] = None + author: Optional[str] = None horizon: Optional[str] = None scenario: Optional[str] = None status: Optional[str] = None @@ -226,6 +261,7 @@ class StudySimSettingsDTO(BaseModel): otherPreferences: Dict[str, Any] advancedParameters: Dict[str, Any] seedsMersenneTwister: Dict[str, Any] + playlist: Optional[List[int]] = None class StudySimResultDTO(BaseModel): diff --git a/antarest/study/repository.py b/antarest/study/repository.py index fdd8aa6ae7..a4054526d0 100644 --- a/antarest/study/repository.py +++ b/antarest/study/repository.py @@ -6,7 +6,7 @@ from antarest.core.interfaces.cache import ICache, CacheConstants from antarest.core.utils.fastapi_sqlalchemy import db -from antarest.study.model import Study, RawStudy +from antarest.study.model import Study, RawStudy, StudyAdditionalData logger = logging.getLogger(__name__) @@ -43,6 +43,14 @@ def get(self, id: str) -> Optional[Study]: metadata: Study = db.session.query(Study).get(id) return metadata + def get_additional_data( + self, study_id: str + ) -> Optional[StudyAdditionalData]: + metadata: StudyAdditionalData = db.session.query( + StudyAdditionalData + ).get(study_id) + return metadata + def get_all(self) -> List[Study]: entity = with_polymorphic(Study, "*") metadatas: List[Study] = ( @@ -66,12 +74,6 @@ def delete(self, id: str) -> None: def _invalidate_study_listing_cache(self) -> None: self.cache_service.invalidate(CacheConstants.STUDY_LISTING.value) - self.cache_service.invalidate( - CacheConstants.STUDY_LISTING_SUMMARY.value - ) self.cache_service.invalidate( CacheConstants.STUDY_LISTING_MANAGED.value ) - self.cache_service.invalidate( - CacheConstants.STUDY_LISTING_SUMMARY_MANAGED.value - ) diff --git a/antarest/study/service.py b/antarest/study/service.py index 097361ac31..6fdf94b3a2 100644 --- a/antarest/study/service.py +++ b/antarest/study/service.py @@ -3,12 +3,11 @@ import json import logging import os -import shutil from datetime import datetime, timedelta from http import HTTPStatus from pathlib import Path from time import time -from typing import List, IO, Optional, cast, Union, Dict, Callable +from typing import List, IO, Optional, cast, Union, Dict, Callable, Any from uuid import uuid4 from fastapi import HTTPException, UploadFile @@ -48,6 +47,7 @@ TaskUpdateNotifier, noop_notifier, ) +from antarest.core.utils.utils import concat_files, StopWatch from antarest.login.model import Group from antarest.login.service import LoginService from antarest.matrixstore.business.matrix_editor import Operation, MatrixSlice @@ -84,6 +84,7 @@ PatchCluster, PatchArea, ExportFormat, + StudyAdditionalData, ) from antarest.study.repository import StudyMetadataRepository from antarest.study.storage.rawstudy.model.filesystem.config.model import ( @@ -160,7 +161,7 @@ def __init__( self.event_bus = event_bus self.file_transfer_manager = file_transfer_manager self.task_service = task_service - self.areas = AreaManager(self.storage_service) + self.areas = AreaManager(self.storage_service, self.repository) self.links = LinkManager(self.storage_service) self.xpansion_manager = XpansionManager(self.storage_service) self.matrix_manager = MatrixManager(self.storage_service) @@ -300,12 +301,11 @@ def _get_study_metadatas(self, params: RequestParameters) -> List[Study]: ) def get_studies_information( - self, summary: bool, managed: bool, params: RequestParameters + self, managed: bool, params: RequestParameters ) -> Dict[str, StudyMetadataDTO]: """ Get information for all studies. Args: - summary: indicate if just basic information should be retrieved managed: indicate if just managed studies should be retrieved params: request parameters @@ -314,13 +314,11 @@ def get_studies_information( """ logger.info("Fetching study listing") studies: Dict[str, StudyMetadataDTO] = {} - cache_keys = { - (True, True): CacheConstants.STUDY_LISTING_SUMMARY_MANAGED.value, - (True, False): CacheConstants.STUDY_LISTING_SUMMARY.value, - (False, True): CacheConstants.STUDY_LISTING_MANAGED.value, - (False, False): CacheConstants.STUDY_LISTING.value, - } - cache_key = cache_keys[(summary, managed)] + cache_key = ( + CacheConstants.STUDY_LISTING_MANAGED.value + if managed + else CacheConstants.STUDY_LISTING.value + ) cached_studies = self.cache_service.get(cache_key) if cached_studies: for k in cached_studies: @@ -331,9 +329,7 @@ def get_studies_information( logger.info("Studies retrieved") for study in all_studies: if not managed or is_managed(study): - study_metadata = self._try_get_studies_information( - study, summary - ) + study_metadata = self._try_get_studies_information(study) if study_metadata is not None: studies[study_metadata.id] = study_metadata self.cache_service.put(cache_key, studies) @@ -351,12 +347,12 @@ def get_studies_information( } def _try_get_studies_information( - self, study: Study, summary: bool + self, study: Study ) -> Optional[StudyMetadataDTO]: try: return self.storage_service.get_storage( study - ).get_study_information(study, summary) + ).get_study_information(study) except Exception as e: logger.warning( "Failed to build study %s (%s) metadata", @@ -387,6 +383,26 @@ def get_study_information( study ) + def initialize_additional_data_in_db( + self, params: RequestParameters + ) -> List[str]: + # TODO: remove this method once used + logger.info("Initializing additional data of studies") + if params.user and params.user.is_site_admin(): + studies = self.repository.get_all() + studies_not_updated: List[str] = [] + for study in studies: + if self.storage_service.get_storage( + study + ).initialize_additional_data(study): + self.repository.save(study) + else: + studies_not_updated.append(f"{study.id} : {study.name}") + return studies_not_updated + else: + logger.error(f"User {params.user} is not site admin") + raise UserHasNotPermissionError() + def update_study_information( self, uuid: str, @@ -408,9 +424,6 @@ def update_study_information( study = self.get_study(uuid) assert_permission(params.user, study, StudyPermissionType.READ) - if metadata_patch.name: - study.name = metadata_patch.name - self.repository.save(study) if metadata_patch.horizon: study_settings_url = "settings/generaldata/general" self._assert_study_unarchived(study) @@ -422,10 +435,29 @@ def update_study_information( self._edit_study_using_command( study=study, url=study_settings_url, data=study_settings ) + if metadata_patch.author: + study_antares_url = "study/antares" + self._assert_study_unarchived(study) + study_antares = self.storage_service.get_storage(study).get( + study, study_antares_url + ) + study_antares["author"] = metadata_patch.author + + self._edit_study_using_command( + study=study, url=study_antares_url, data=study_antares + ) + study.additional_data = study.additional_data or StudyAdditionalData() + if metadata_patch.name: + study.name = metadata_patch.name + if metadata_patch.author: + study.additional_data.author = metadata_patch.author + if metadata_patch.horizon: + study.additional_data.horizon = metadata_patch.horizon new_metadata = self.storage_service.get_storage( study ).patch_update_study_metadata(study, metadata_patch) + self.event_bus.push( Event( type=EventType.STUDY_EDITED, @@ -482,6 +514,7 @@ def create_study( created_at=datetime.utcnow(), updated_at=datetime.utcnow(), version=version or NEW_DEFAULT_STUDY_VERSION, + additional_data=StudyAdditionalData(), ) raw = self.storage_service.raw_study_service.create(raw) @@ -984,69 +1017,99 @@ def download_outputs( params.get_user_id(), ) - matrix = StudyDownloader.build( - self.storage_service.get_storage(study).get_raw(study), - output_id, - data, - ) + if use_task: + logger.info(f"Exporting {output_id} from study {study_id}") + export_name = ( + f"Study filtered output {study.name}/{output_id} export" + ) + export_file_download = self.file_transfer_manager.request_download( + f"{study.name}-{study_id}-{output_id}_filtered.{'tar.gz' if filetype == ExportFormat.TAR_GZ else 'zip'}", + export_name, + params.user, + ) + export_path = Path(export_file_download.path) + export_id = export_file_download.id - if filetype != ExportFormat.JSON: - if use_task: - logger.info(f"Exporting {output_id} from study {study_id}") - export_name = ( - f"Study filtered output {study.name}/{output_id} export" - ) - export_file_download = self.file_transfer_manager.request_download( - f"{study.name}-{study_id}-{output_id}_filtered.{'tar.gz' if filetype == ExportFormat.TAR_GZ else 'zip'}", - export_name, - params.user, - ) - export_path = Path(export_file_download.path) - export_id = export_file_download.id - - def export_task(notifier: TaskUpdateNotifier) -> TaskResult: - try: - StudyDownloader.export(matrix, filetype, export_path) - self.file_transfer_manager.set_ready(export_id) - return TaskResult( - success=True, - message=f"Study filtered output {study_id}/{output_id} successfully exported", + def export_task(notifier: TaskUpdateNotifier) -> TaskResult: + try: + study = self.get_study(study_id) + stopwatch = StopWatch() + matrix = StudyDownloader.build( + self.storage_service.get_storage(study).get_raw(study), + output_id, + data, + ) + stopwatch.log_elapsed( + lambda x: logger.info( + f"Study {study_id} filtered output {output_id} built in {x}s" ) - except Exception as e: - self.file_transfer_manager.fail(export_id, str(e)) - raise e - - task_id = self.task_service.add_task( - export_task, - export_name, - task_type=TaskType.EXPORT, - ref_id=study.id, - custom_event_messages=None, - request_params=params, - ) + ) + StudyDownloader.export(matrix, filetype, export_path) + stopwatch.log_elapsed( + lambda x: logger.info( + f"Study {study_id} filtered output {output_id} exported in {x}s" + ) + ) + self.file_transfer_manager.set_ready(export_id) + return TaskResult( + success=True, + message=f"Study filtered output {study_id}/{output_id} successfully exported", + ) + except Exception as e: + self.file_transfer_manager.fail(export_id, str(e)) + raise e + + task_id = self.task_service.add_task( + export_task, + export_name, + task_type=TaskType.EXPORT, + ref_id=study.id, + custom_event_messages=None, + request_params=params, + ) - return FileDownloadTaskDTO( - file=export_file_download.to_dto(), task=task_id + return FileDownloadTaskDTO( + file=export_file_download.to_dto(), task=task_id + ) + else: + stopwatch = StopWatch() + matrix = StudyDownloader.build( + self.storage_service.get_storage(study).get_raw(study), + output_id, + data, + ) + stopwatch.log_elapsed( + lambda x: logger.info( + f"Study {study_id} filtered output {output_id} built in {x}s" ) - else: - if tmp_export_file is not None: - StudyDownloader.export(matrix, filetype, tmp_export_file) - return FileResponse( - tmp_export_file, - headers={ - "Content-Disposition": f'attachment; filename="output-{output_id}.{"tar.gz" if filetype == ExportFormat.TAR_GZ else "zip"}' - }, - media_type=filetype, + ) + if tmp_export_file is not None: + StudyDownloader.export(matrix, filetype, tmp_export_file) + stopwatch.log_elapsed( + lambda x: logger.info( + f"Study {study_id} filtered output {output_id} exported in {x}s" ) - - json_response = json.dumps( - matrix.dict(), - ensure_ascii=False, - allow_nan=True, - indent=None, - separators=(",", ":"), - ).encode("utf-8") - return Response(content=json_response, media_type="application/json") + ) + return FileResponse( + tmp_export_file, + headers={"Content-Disposition": "inline"} + if filetype == ExportFormat.JSON + else { + "Content-Disposition": f'attachment; filename="output-{output_id}.{"tar.gz" if filetype == ExportFormat.TAR_GZ else "zip"}' + }, + media_type=filetype, + ) + else: + json_response = json.dumps( + matrix.dict(), + ensure_ascii=False, + allow_nan=True, + indent=None, + separators=(",", ":"), + ).encode("utf-8") + return Response( + content=json_response, media_type="application/json" + ) def get_study_sim_result( self, study_id: str, params: RequestParameters @@ -1130,10 +1193,13 @@ def import_study( id=sid, workspace=DEFAULT_WORKSPACE_NAME, path=path, + additional_data=StudyAdditionalData(), ) study = self.storage_service.raw_study_service.import_study( study, stream ) + study.updated_at = datetime.utcnow() + # status = self._analyse_study(study) self._save_study( study, @@ -1159,7 +1225,7 @@ def import_output( uuid: str, output: Union[IO[bytes], Path], params: RequestParameters, - additional_logs: Optional[Dict[str, Path]] = None, + additional_logs: Optional[Dict[str, List[Path]]] = None, ) -> Optional[str]: """ Import specific output simulation inside study @@ -1184,9 +1250,9 @@ def import_output( study, output ) if res is not None and additional_logs: - for log_name, log_path in additional_logs.items(): - shutil.copyfile( - log_path, Path(study.path) / "output" / res / log_name + for log_name, log_paths in additional_logs.items(): + concat_files( + log_paths, Path(study.path) / "output" / res / log_name ) remove_from_cache(cache=self.cache_service, root_id=study.id) logger.info( @@ -1481,12 +1547,17 @@ def get_all_areas( self, uuid: str, area_type: Optional[AreaType], + ui: bool, params: RequestParameters, - ) -> List[AreaInfoDTO]: + ) -> Union[List[AreaInfoDTO], Dict[str, Any]]: study = self.get_study(uuid) assert_permission(params.user, study, StudyPermissionType.READ) self._assert_study_unarchived(study) - return self.areas.get_all_areas(study, area_type) + return ( + self.areas.get_all_areas_ui_info(study) + if ui + else self.areas.get_all_areas(study, area_type) + ) def get_all_links( self, @@ -1693,7 +1764,7 @@ def _save_study( content_status: StudyContentStatus = StudyContentStatus.VALID, ) -> None: """ - Creeate new study with owner, group or content_status. + Create new study with owner, group or content_status. Args: study: study to save owner: new owner @@ -1716,8 +1787,10 @@ def _save_study( groups = [] for gid in group_ids: group = next(filter(lambda g: g.id == gid, owner.groups), None) - if group is None or not group.role.is_higher_or_equals( - RoleType.WRITER + if ( + group is None + or not group.role.is_higher_or_equals(RoleType.WRITER) + and not owner.is_site_admin() ): raise UserHasNotPermissionError() groups.append(Group(id=group.id, name=group.name)) @@ -1780,12 +1853,17 @@ def get_studies_versions(params: RequestParameters) -> List[str]: return list(STUDY_REFERENCE_TEMPLATES.keys()) def create_xpansion_configuration( - self, uuid: str, params: RequestParameters + self, + uuid: str, + zipped_config: Optional[UploadFile], + params: RequestParameters, ) -> None: study = self.get_study(uuid) assert_permission(params.user, study, StudyPermissionType.WRITE) self._assert_study_unarchived(study) - self.xpansion_manager.create_xpansion_configuration(study) + self.xpansion_manager.create_xpansion_configuration( + study, zipped_config + ) def delete_xpansion_configuration( self, uuid: str, params: RequestParameters @@ -1962,3 +2040,15 @@ def update_matrix( assert_permission(params.user, study, StudyPermissionType.WRITE) self._assert_study_unarchived(study) self.matrix_manager.update_matrix(study, path, slices, operation) + + def check_and_update_all_study_versions_in_database( + self, params: RequestParameters + ) -> None: + if params.user and not params.user.is_site_admin(): + logger.error(f"User {params.user.id} is not site admin") + raise UserHasNotPermissionError() + studies = self.repository.get_all() + for study in studies: + if isinstance(study, RawStudy) and not is_managed(study): + storage = self.storage_service.raw_study_service + storage.check_and_update_study_version_in_database(study) diff --git a/antarest/study/storage/abstract_storage_service.py b/antarest/study/storage/abstract_storage_service.py index aaf3fda16c..ca9480ea4d 100644 --- a/antarest/study/storage/abstract_storage_service.py +++ b/antarest/study/storage/abstract_storage_service.py @@ -2,17 +2,17 @@ import os import shutil import tempfile -from abc import abstractmethod, ABC -from datetime import datetime +from abc import ABC from pathlib import Path -from typing import List, Union, Optional, IO +from typing import List, Union, Optional, IO, cast from uuid import uuid4 +from pydantic import ValidationError + from antarest.core.config import Config -from antarest.core.model import JSON, PublicMode from antarest.core.exceptions import BadOutputError, StudyOutputNotFoundError from antarest.core.interfaces.cache import CacheConstants, ICache -from antarest.core.requests import RequestParameters +from antarest.core.model import JSON, PublicMode from antarest.core.utils.utils import extract_zip, StopWatch, assert_this from antarest.login.model import GroupDTO from antarest.study.common.studystorage import IStudyStorageService, T @@ -25,18 +25,21 @@ DEFAULT_WORKSPACE_NAME, PatchStudy, StudyMetadataPatchDTO, + Patch, + StudyAdditionalData, ) from antarest.study.storage.patch_service import PatchService -from antarest.study.storage.rawstudy.io.reader import IniReader +from antarest.study.storage.rawstudy.model.filesystem.config.files import ( + ConfigPathBuilder, +) from antarest.study.storage.rawstudy.model.filesystem.config.model import ( Simulation, - FileStudyTreeConfig, - FileStudyTreeConfigDTO, ) from antarest.study.storage.rawstudy.model.filesystem.factory import ( StudyFactory, FileStudy, ) +from antarest.study.storage.rawstudy.model.helpers import FileStudyHelpers from antarest.study.storage.utils import ( fix_study_root, remove_from_cache, @@ -81,53 +84,30 @@ def patch_update_study_metadata( def get_study_information( self, study: T, - summary: bool = False, ) -> StudyMetadataDTO: - file_settings = {} - file_metadata = {} + additional_data = study.additional_data or StudyAdditionalData() - patch_metadata = PatchStudy() + try: + patch = Patch.parse_raw(additional_data.patch or "{}") + except Exception as e: + logger.warning( + f"Failed to parse patch for study {study.id}", exc_info=e + ) + patch = Patch() - if not summary: - try: - patch_metadata = ( - self.patch_service.get(study).study or PatchStudy() - ) - study_path = self.get_study_path(study) - if study_path: - config = FileStudyTreeConfig( - study_path=study_path, - path=study_path, - study_id="", - version=-1, - ) - raw_study = self.study_factory.create_from_config(config) - file_metadata = raw_study.get(url=["study", "antares"]) - study_version = str( - file_metadata.get("version", study.version) - ) - if study_version != study.version: - logger.warning( - f"Study version in file ({study_version}) is different from the one stored in db ({study.version}), returning file version" - ) - study.version = study_version - file_settings = raw_study.get( - url=["settings", "generaldata", "general"] - ) - except Exception as e: - logger.error( - "Failed to retrieve general settings for study %s", - study.id, - exc_info=e, - ) + patch_metadata = patch.study or PatchStudy() - study_workspace = DEFAULT_WORKSPACE_NAME - if hasattr(study, "workspace"): - study_workspace = study.workspace + study_workspace = getattr(study, "workspace", DEFAULT_WORKSPACE_NAME) folder: Optional[str] = None if hasattr(study, "folder"): folder = study.folder + owner_info = ( + OwnerInfo(id=study.owner.id, name=study.owner.name) + if study.owner is not None + else OwnerInfo(name=additional_data.author or "Unknown") + ) + return StudyMetadataDTO( id=study.id, name=study.name, @@ -138,15 +118,13 @@ def get_study_information( managed=study_workspace == DEFAULT_WORKSPACE_NAME, type=study.type, archived=study.archived if study.archived is not None else False, - owner=OwnerInfo(id=study.owner.id, name=study.owner.name) - if study.owner is not None - else OwnerInfo(name=file_metadata.get("author", "Unknown")), + owner=owner_info, groups=[ GroupDTO(id=group.id, name=group.name) for group in study.groups ], public_mode=study.public_mode or PublicMode.NONE, - horizon=file_settings.get("horizon", None), + horizon=additional_data.horizon, scenario=patch_metadata.scenario, status=patch_metadata.status, doc=patch_metadata.doc, @@ -213,8 +191,9 @@ def get_study_sim_result( if study_data.config.outputs is not None: reference = (patch_metadata.outputs or PatchOutputs()).reference for output in study_data.config.outputs: - file_metadata = study_data.tree.get( - url=["output", output, "about-the-study", "parameters"] + output_data: Simulation = study_data.config.outputs[output] + file_metadata = FileStudyHelpers.get_config( + study_data, output_data.get_file() ) settings = StudySimSettingsDTO( general=file_metadata["general"], @@ -226,8 +205,9 @@ def get_study_sim_result( seedsMersenneTwister=file_metadata[ "seeds - Mersenne Twister" ], + playlist=ConfigPathBuilder.get_playlist(file_metadata), ) - output_data: Simulation = study_data.config.outputs[output] + results.append( StudySimResultDTO( name=output_data.get_file(), @@ -347,3 +327,19 @@ def export_output(self, metadata: T, output_id: str, target: Path) -> Path: ) ) return target.parent / filename + + def _read_additional_data_from_files( + self, file_study: FileStudy + ) -> StudyAdditionalData: + logger.info( + f"Reading additional data from files for study {file_study.config.study_id}" + ) + horizon = file_study.tree.get( + url=["settings", "generaldata", "general", "horizon"] + ) + author = file_study.tree.get(url=["study", "antares", "author"]) + patch = self.patch_service.get_from_filestudy(file_study) + study_additional_data = StudyAdditionalData( + horizon=horizon, author=author, patch=patch.json() + ) + return study_additional_data diff --git a/antarest/study/storage/patch_service.py b/antarest/study/storage/patch_service.py index 7e31849ba6..9d16199d14 100644 --- a/antarest/study/storage/patch_service.py +++ b/antarest/study/storage/patch_service.py @@ -1,28 +1,54 @@ +import logging from pathlib import Path -from typing import Union +from typing import Union, Optional -from antarest.core.model import JSON -from antarest.study.model import Patch, PatchOutputs, RawStudy +from pydantic import ValidationError + +from antarest.study.model import ( + Patch, + PatchOutputs, + RawStudy, + StudyAdditionalData, +) +from antarest.study.repository import StudyMetadataRepository from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.variantstudy.model.dbmodel import ( VariantStudy, ) +logger = logging.getLogger(__name__) + class PatchService: - def get(self, study: Union[RawStudy, VariantStudy, FileStudy]) -> Patch: - patch_path = ( - Path(study.path) - if not isinstance(study, FileStudy) - else study.config.study_path - ) / "patch.json" + def __init__(self, repository: Optional[StudyMetadataRepository] = None): + self.repository = repository + + def get( + self, study: Union[RawStudy, VariantStudy], get_from_file: bool = False + ) -> Patch: + if not get_from_file: + try: + return Patch.parse_raw(study.additional_data.patch) + except Exception as e: + logger.warning("Failed to parse patch data", exc_info=e) + + patch = Patch() + patch_path = (Path(study.path)) / "patch.json" if patch_path.exists(): - return Patch.parse_file(patch_path) - return Patch() + patch = Patch.parse_file(patch_path) + + return patch + + def get_from_filestudy(self, file_study: FileStudy) -> Patch: + patch = Patch() + patch_path = (Path(file_study.config.study_path)) / "patch.json" + if patch_path.exists(): + patch = Patch.parse_file(patch_path) + return patch def set_reference_output( self, - study: Union[RawStudy, VariantStudy, FileStudy], + study: Union[RawStudy, VariantStudy], output_id: str, status: bool = True, ) -> None: @@ -33,13 +59,14 @@ def set_reference_output( patch.outputs = PatchOutputs(reference=output_id) self.save(study, patch) - def save( - self, study: Union[RawStudy, VariantStudy, FileStudy], patch: Patch - ) -> None: + def save(self, study: Union[RawStudy, VariantStudy], patch: Patch) -> None: + if self.repository: + study.additional_data = ( + study.additional_data or StudyAdditionalData() + ) + study.additional_data.patch = patch.json() + self.repository.save(study) + patch_content = patch.json() - patch_path = ( - Path(study.path) - if not isinstance(study, FileStudy) - else study.config.study_path - ) / "patch.json" + patch_path = (Path(study.path)) / "patch.json" patch_path.write_text(patch_content) diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/files.py b/antarest/study/storage/rawstudy/model/filesystem/config/files.py index fb39b2cc28..8571f6efef 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/files.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/files.py @@ -169,34 +169,37 @@ def parse_simulation(path: Path) -> Optional["Simulation"]: ) return None + @staticmethod + def get_playlist(config: JSON) -> Optional[List[int]]: + general_config = config.get("general", {}) + nb_years = cast(int, general_config.get("nbyears")) + playlist_activated = cast( + bool, general_config.get("user-playlist", False) + ) + if not playlist_activated: + return None + playlist_config = config.get("playlist", {}) + playlist_reset = playlist_config.get("playlist_reset", True) + added = playlist_config.get("playlist_year +", []) + removed = playlist_config.get("playlist_year -", []) + if playlist_reset: + return [ + year + 1 for year in range(0, nb_years) if year not in removed + ] + return [year + 1 for year in added if year not in removed] + @staticmethod def _parse_outputs_parameters( path: Path, - ) -> Tuple[int, bool, bool, List[int]]: + ) -> Tuple[int, bool, bool, Optional[List[int]]]: par: JSON = MultipleSameKeysIniReader(DUPLICATE_KEYS).read( path / "about-the-study/parameters.ini" ) - nb_years = par["general"]["nbyears"] - playlist_activated = cast( - bool, par["general"].get("user-playlist", False) - ) - playlist = list(range(0, nb_years)) - if playlist_activated: - playlist_config = par.get("playlist", {}) - playlist_reset = playlist_config.get("playlist_reset", True) - added = playlist_config.get("playlist_year +", []) - removed = playlist_config.get("playlist_year -", []) - if playlist_reset: - playlist = [ - year for year in range(0, nb_years) if year not in removed - ] - else: - playlist = [year for year in added if year not in removed] return ( par["general"]["nbyears"], par["general"]["year-by-year"], par["output"]["synthesis"], - playlist, + ConfigPathBuilder.get_playlist(par), ) @staticmethod diff --git a/antarest/study/storage/rawstudy/model/filesystem/config/model.py b/antarest/study/storage/rawstudy/model/filesystem/config/model.py index 2b253e5a55..72277ae14d 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/config/model.py +++ b/antarest/study/storage/rawstudy/model/filesystem/config/model.py @@ -89,7 +89,7 @@ class Simulation(BaseModel): synthesis: bool by_year: bool error: bool - playlist: List[int] + playlist: Optional[List[int]] def get_file(self) -> str: modes = {"economy": "eco", "adequacy": "adq", "draft": "dft"} @@ -149,6 +149,23 @@ def next_file(self, name: str) -> "FileStudyTreeConfig": cache=self.cache, ) + def at_file(self, filepath: Path) -> "FileStudyTreeConfig": + return FileStudyTreeConfig( + study_path=self.study_path, + output_path=self.output_path, + path=filepath, + study_id=self.study_id, + version=self.version, + areas=self.areas, + sets=self.sets, + outputs=self.outputs, + bindings=self.bindings, + store_new_set=self.store_new_set, + archive_input_series=self.archive_input_series, + enr_modelling=self.enr_modelling, + cache=self.cache, + ) + def area_names(self) -> List[str]: return self.cache.get("%areas", list(self.areas.keys())) diff --git a/antarest/study/storage/rawstudy/model/filesystem/factory.py b/antarest/study/storage/rawstudy/model/filesystem/factory.py index eb6868c725..c2f8dac888 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/factory.py +++ b/antarest/study/storage/rawstudy/model/filesystem/factory.py @@ -52,7 +52,7 @@ def create_from_fs( study_id: str, output_path: Optional[Path] = None, use_cache: bool = True, - ) -> Tuple[FileStudyTreeConfig, FileStudyTree]: + ) -> FileStudy: cache_id = f"{CacheConstants.STUDY_FACTORY}/{study_id}" if study_id and use_cache: from_cache = self.cache.get(cache_id) @@ -61,12 +61,12 @@ def create_from_fs( config = FileStudyTreeConfigDTO.parse_obj( from_cache ).to_build_config() - return config, FileStudyTree(self.context, config) + return FileStudy(config, FileStudyTree(self.context, config)) start_time = time.time() config = ConfigPathBuilder.build(path, study_id, output_path) duration = "{:.3f}".format(time.time() - start_time) logger.info(f"Study {study_id} config built in {duration}s") - result = config, FileStudyTree(self.context, config) + result = FileStudy(config, FileStudyTree(self.context, config)) if study_id and use_cache: self.cache.put( cache_id, diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/date_serializer.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/date_serializer.py index e002cbded2..1ee8c94b52 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/date_serializer.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/date_serializer.py @@ -76,7 +76,7 @@ class HourlyMatrixSerializer(IDateMatrixSerializer): def build_date(self, index: pd.Index) -> pd.DataFrame: def _map(row: str) -> Tuple[str, int, str, str, str]: m, d, h = re.split("[\s/]", row) - return "", 1, d.strip("0"), IDateMatrixSerializer._R_MONTHS[m], h + return "", 1, d, IDateMatrixSerializer._R_MONTHS[m], h items = index.map(_map).tolist() matrix = pd.DataFrame(items) @@ -126,7 +126,7 @@ class DailyMatrixSerializer(IDateMatrixSerializer): def build_date(self, index: pd.Index) -> pd.DataFrame: def _map(row: str) -> Tuple[str, int, str, str]: m, d = row.split("/") - return "", 1, d.strip("0"), IDateMatrixSerializer._R_MONTHS[m] + return "", 1, d, IDateMatrixSerializer._R_MONTHS[m] items = index.map(_map).tolist() matrix = pd.DataFrame(items) @@ -221,7 +221,7 @@ def extract_date(self, df: pd.DataFrame) -> Tuple[pd.Index, pd.DataFrame]: # Extract left part with date date = df.iloc[:, 2:3] date.columns = ["month"] - date["month"] = date["month"].map(IDateMatrixSerializer._MONTHS) + date["month"] = date.loc[:, "month"].map(IDateMatrixSerializer._MONTHS) # Extract right part with data to_remove = df.columns[0:3] diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/head_writer.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/head_writer.py index d473e76e0f..5e2a899d17 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/head_writer.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/head_writer.py @@ -26,8 +26,8 @@ class AreaHeadWriter(HeadWriter): Implementation for area head matrix. """ - def __init__(self, area: str, freq: str): - self.head = f"""{area.upper()}\tarea\t{area.lower()}\t{freq} + def __init__(self, area: str, data_type: str, freq: str): + self.head = f"""{area.upper()}\tarea\t{data_type}\t{freq} \tVARIABLES\tBEGIN\tEND """ diff --git a/antarest/study/storage/rawstudy/model/filesystem/matrix/output_series_matrix.py b/antarest/study/storage/rawstudy/model/filesystem/matrix/output_series_matrix.py index e38778ac03..6e3fd08717 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/matrix/output_series_matrix.py +++ b/antarest/study/storage/rawstudy/model/filesystem/matrix/output_series_matrix.py @@ -178,6 +178,6 @@ def __init__( context, config=config, date_serializer=FactoryDateSerializer.create(freq, area), - head_writer=AreaHeadWriter(area, freq), + head_writer=AreaHeadWriter(area, config.path.name[:2], freq), freq=freq, ) diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/mcind.py b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/mcind.py index 509526460d..b2c279eae6 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/mcind.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/output/simulation/mode/mcind/mcind.py @@ -26,9 +26,10 @@ def __init__( def build(self) -> TREE: children: TREE = { - str("{:05d}".format(scn + 1)): OutputSimulationModeMcIndScn( - self.context, self.config.next_file("{:05d}".format(scn + 1)) + str("{:05d}".format(scn)): OutputSimulationModeMcIndScn( + self.context, self.config.next_file("{:05d}".format(scn)) ) for scn in self.simulation.playlist + or range(1, self.simulation.nbyears + 1) } return children diff --git a/antarest/study/storage/rawstudy/model/filesystem/root/settings/generaldata.py b/antarest/study/storage/rawstudy/model/filesystem/root/settings/generaldata.py index 8af97ebf61..de7e60f3ce 100644 --- a/antarest/study/storage/rawstudy/model/filesystem/root/settings/generaldata.py +++ b/antarest/study/storage/rawstudy/model/filesystem/root/settings/generaldata.py @@ -17,7 +17,6 @@ DUPLICATE_KEYS = [ - "playlist_reset", "playlist_year_weight", "playlist_year +", "playlist_year -", diff --git a/antarest/study/storage/rawstudy/model/helpers.py b/antarest/study/storage/rawstudy/model/helpers.py new file mode 100644 index 0000000000..0ca374c7de --- /dev/null +++ b/antarest/study/storage/rawstudy/model/helpers.py @@ -0,0 +1,64 @@ +from typing import Optional, List, cast + +from antarest.core.model import JSON +from antarest.core.utils.utils import assert_this +from antarest.study.storage.rawstudy.model.filesystem.config.files import ( + ConfigPathBuilder, +) +from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy + + +class FileStudyHelpers: + @staticmethod + def get_config(study: FileStudy, output_id: Optional[str] = None) -> JSON: + config_path = ["settings", "generaldata"] + if output_id: + config_path = [ + "output", + output_id, + "about-the-study", + "parameters", + ] + return study.tree.get(config_path) + + @staticmethod + def save_config(study: FileStudy, config: JSON) -> None: + config_path = ["settings", "generaldata"] + return study.tree.save(config, config_path) + + @staticmethod + def get_playlist( + study: FileStudy, output_id: Optional[str] = None + ) -> Optional[List[int]]: + config = FileStudyHelpers.get_config(study, output_id) + return ConfigPathBuilder.get_playlist(config) + + @staticmethod + def set_playlist(study: FileStudy, playlist: List[int]) -> None: + playlist_without_offset = [year - 1 for year in playlist] + config = FileStudyHelpers.get_config(study) + general_config: Optional[JSON] = config.get("general", None) + assert_this(general_config is not None) + general_config = cast(JSON, general_config) + nb_years = cast(int, general_config.get("nbyears")) + if len(playlist) == nb_years: + general_config["user-playlist"] = False + else: + playlist_config = config.get("playlist", {}) + general_config["user-playlist"] = True + if len(playlist) > nb_years / 2: + playlist_config["playlist_reset"] = True + if "playlist_year +" in playlist_config: + del playlist_config["playlist_year +"] + playlist_config["playlist_year -"] = [ + year + for year in range(0, nb_years) + if year not in playlist_without_offset + ] + else: + playlist_config["playlist_reset"] = False + if "playlist_year -" in playlist_config: + del playlist_config["playlist_year -"] + playlist_config["playlist_year +"] = playlist_without_offset + config["playlist"] = playlist_config + FileStudyHelpers.save_config(study, config) diff --git a/antarest/study/storage/rawstudy/raw_study_service.py b/antarest/study/storage/rawstudy/raw_study_service.py index ccb76377c5..fba12a117a 100644 --- a/antarest/study/storage/rawstudy/raw_study_service.py +++ b/antarest/study/storage/rawstudy/raw_study_service.py @@ -11,13 +11,14 @@ StudyDeletionNotAllowed, ) from antarest.core.interfaces.cache import ICache -from antarest.core.model import JSON from antarest.core.requests import RequestParameters from antarest.core.utils.utils import extract_zip from antarest.study.model import ( RawStudy, DEFAULT_WORKSPACE_NAME, Study, + Patch, + StudyAdditionalData, ) from antarest.study.storage.abstract_storage_service import ( AbstractStorageService, @@ -25,6 +26,7 @@ from antarest.study.storage.patch_service import PatchService from antarest.study.storage.rawstudy.model.filesystem.config.model import ( FileStudyTreeConfigDTO, + FileStudyTreeConfig, ) from antarest.study.storage.rawstudy.model.filesystem.factory import ( StudyFactory, @@ -75,9 +77,9 @@ def update_from_raw_meta( fallback_on_default: use default values in case of failure """ path = self.get_study_path(metadata) - _, study = self.study_factory.create_from_fs(path, study_id="") + study = self.study_factory.create_from_fs(path, study_id="") try: - raw_meta = study.get(["study", "antares"]) + raw_meta = study.tree.get(["study", "antares"]) metadata.name = raw_meta["caption"] metadata.version = raw_meta["version"] metadata.created_at = datetime.utcfromtimestamp( @@ -86,6 +88,11 @@ def update_from_raw_meta( metadata.updated_at = datetime.utcfromtimestamp( raw_meta["lastsave"] ) + + metadata.additional_data = self._read_additional_data_from_files( + study + ) + except Exception as e: logger.error( "Failed to fetch study %s raw metadata!", @@ -97,6 +104,18 @@ def update_from_raw_meta( metadata.version = metadata.version or 0 metadata.created_at = metadata.created_at or datetime.utcnow() metadata.updated_at = metadata.updated_at or datetime.utcnow() + if not metadata.additional_data: + metadata.additional_data = StudyAdditionalData() + metadata.additional_data.patch = ( + metadata.additional_data.patch or Patch() + ) + metadata.additional_data.horizon = ( + metadata.additional_data.horizon + ) + metadata.additional_data.author = ( + metadata.additional_data.author or "Unknown" + ) + else: raise e @@ -111,31 +130,34 @@ def exists(self, metadata: RawStudy) -> bool: """ return (self.get_study_path(metadata) / "study.antares").is_file() - def get_raw(self, metadata: RawStudy, use_cache: bool = True) -> FileStudy: + def get_raw( + self, + metadata: RawStudy, + use_cache: bool = True, + output_dir: Optional[Path] = None, + ) -> FileStudy: """ Fetch a study object and its config Args: metadata: study use_cache: use cache + output_dir: optional output dir override Returns: the config and study tree object """ self._check_study_exists(metadata) study_path = self.get_study_path(metadata) - study_config, study_tree = self.study_factory.create_from_fs( - study_path, metadata.id, use_cache=use_cache + return self.study_factory.create_from_fs( + study_path, metadata.id, output_dir, use_cache=use_cache ) - return FileStudy(config=study_config, tree=study_tree) def get_synthesis( self, metadata: RawStudy, params: Optional[RequestParameters] = None ) -> FileStudyTreeConfigDTO: self._check_study_exists(metadata) study_path = self.get_study_path(metadata) - study_config, _ = self.study_factory.create_from_fs( - study_path, metadata.id - ) - return FileStudyTreeConfigDTO.from_build_config(study_config) + study = self.study_factory.create_from_fs(study_path, metadata.id) + return FileStudyTreeConfigDTO.from_build_config(study.config) def create(self, metadata: RawStudy) -> RawStudy: """ @@ -155,8 +177,8 @@ def create(self, metadata: RawStudy) -> RawStudy: path_resources=self.path_resources, ) - _, tree = self.study_factory.create_from_fs(path_study, metadata.id) - update_antares_info(metadata, tree) + study = self.study_factory.create_from_fs(path_study, metadata.id) + update_antares_info(metadata, study.tree) metadata.path = str(path_study) @@ -179,6 +201,15 @@ def copy( """ self._check_study_exists(src_meta) + + if not src_meta.additional_data: + additional_data = StudyAdditionalData() + else: + additional_data = StudyAdditionalData( + horizon=src_meta.additional_data.horizon, + author=src_meta.additional_data.author, + patch=src_meta.additional_data.patch, + ) dest_id = str(uuid4()) dest_study = RawStudy( id=dest_id, @@ -188,6 +219,7 @@ def copy( created_at=datetime.utcnow(), updated_at=datetime.utcnow(), version=src_meta.version, + additional_data=additional_data, ) src_path = self.get_study_path(src_meta) @@ -199,12 +231,12 @@ def copy( if not with_outputs and output.exists(): shutil.rmtree(output) - _, study = self.study_factory.create_from_fs( + study = self.study_factory.create_from_fs( dest_path, study_id=dest_study.id ) - update_antares_info(dest_study, study) + update_antares_info(dest_study, study.tree) - del study + del study.tree return dest_study def delete(self, metadata: RawStudy) -> None: @@ -286,8 +318,8 @@ def export_study_flat( stop_time = time.time() duration = "{:.3f}".format(stop_time - start_time) logger.info(f"Study {path_study} exported (flat mode) in {duration}s") - _, study = self.study_factory.create_from_fs(dest, "", use_cache=False) - study.denormalize() + study = self.study_factory.create_from_fs(dest, "", use_cache=False) + study.tree.denormalize() duration = "{:.3f}".format(time.time() - stop_time) logger.info(f"Study {path_study} denormalized in {duration}s") @@ -304,8 +336,8 @@ def check_errors( """ path = self.get_study_path(metadata) - _, study = self.study_factory.create_from_fs(path, metadata.id) - return study.check_errors(study.get()) + study = self.study_factory.create_from_fs(path, metadata.id) + return study.tree.check_errors(study.tree.get()) def set_reference_output( self, study: RawStudy, output_id: str, status: bool @@ -331,3 +363,49 @@ def get_study_path(self, metadata: Study) -> Path: """ return Path(metadata.path) + + def initialize_additional_data(self, raw_study: RawStudy) -> bool: + try: + study = self.study_factory.create_from_fs( + self.get_study_path(raw_study), + study_id=raw_study.id, + ) + raw_study.additional_data = self._read_additional_data_from_files( + study + ) + return True + except Exception as e: + logger.error( + f"Error while reading additional data for study {raw_study.id}", + exc_info=e, + ) + return False + + def check_and_update_study_version_in_database( + self, study: RawStudy + ) -> None: + try: + study_path = self.get_study_path(study) + if study_path: + config = FileStudyTreeConfig( + study_path=study_path, + path=study_path, + study_id="", + version=-1, + ) + raw_study = self.study_factory.create_from_config(config) + file_metadata = raw_study.get(url=["study", "antares"]) + study_version = str( + file_metadata.get("version", study.version) + ) + if study_version != study.version: + logger.warning( + f"Study version in file ({study_version}) is different from the one stored in db ({study.version}), returning file version" + ) + study.version = study_version + except Exception as e: + logger.error( + "Failed to check and/or update study version in database for study %s", + study.id, + exc_info=e, + ) diff --git a/antarest/study/storage/rawstudy/watcher.py b/antarest/study/storage/rawstudy/watcher.py index 442b74578c..3f6539f093 100644 --- a/antarest/study/storage/rawstudy/watcher.py +++ b/antarest/study/storage/rawstudy/watcher.py @@ -205,6 +205,7 @@ def scan( Returns: """ + stopwatch = StopWatch() studies: List[StudyFolder] = list() directory_path: Optional[Path] = None if workspace_directory_path is not None and workspace_name: @@ -242,20 +243,22 @@ def scan( workspace.filter_in, workspace.filter_out, ) + stopwatch.log_elapsed( + lambda x: logger.info( + f"Workspace {name} scanned in {x}s" + ) + ) else: raise ValueError( "Both workspace_name and directory_path must be specified" ) with db(): - stopwatch = StopWatch() logger.info( f"Waiting for FileLock to synchronize {directory_path or 'all studies'}" ) with FileLock(self.config.storage.tmp_dir / Watcher.SCAN_LOCK): - stopwatch.log_elapsed( - lambda x: logger.info( - f"FileLock acquired to synchronize for {directory_path or 'all studies'} in {x}s" - ) + logger.info( + f"FileLock acquired to synchronize for {directory_path or 'all studies'}" ) self.study_service.sync_studies_on_disk( studies, directory_path @@ -263,5 +266,6 @@ def scan( stopwatch.log_elapsed( lambda x: logger.info( f"{directory_path or 'All studies'} synchronized in {x}s" - ) + ), + since_start=True, ) diff --git a/antarest/study/storage/study_download_utils.py b/antarest/study/storage/study_download_utils.py index d4a647256a..1bc1a9f901 100644 --- a/antarest/study/storage/study_download_utils.py +++ b/antarest/study/storage/study_download_utils.py @@ -1,4 +1,5 @@ import csv +import json import logging import os import re @@ -104,7 +105,7 @@ def level_output_filter( cluster_details += [f"details-res-{data.level.value}"] files_matcher = ( - [f"values-{data.level.value}", cluster_details] + [f"values-{data.level.value}"] + cluster_details if data.includeClusters and target[0] != StudyDownloadType.LINK else [f"values-{data.level.value}"] ) @@ -373,57 +374,75 @@ def export( filetype: ExportFormat, target_file: Path, ) -> None: - # 1- Zip/tar+gz container - with ( - ZipFile(target_file, "w", ZIP_DEFLATED) # type: ignore - if filetype == ExportFormat.ZIP - else tarfile.open(target_file, mode="w:gz") - ) as output_data: - - # 2 - Create CSV files - for ts_data in matrix.data: - output = StringIO() - writer = csv.writer(output, quoting=csv.QUOTE_NONE) - nb_rows, csv_titles = StudyDownloader.export_infos( - ts_data.data + if filetype == ExportFormat.JSON: + # 1- JSON + with open(target_file, "w") as fh: + json.dump( + matrix.dict(), + fh, + ensure_ascii=False, + allow_nan=True, + indent=None, + separators=(",", ":"), ) - if nb_rows == -1: - raise Exception( - f"Outputs export: No rows for {ts_data.name} csv" + else: + # 1- Zip/tar+gz container + with ( + ZipFile(target_file, "w", ZIP_DEFLATED) # type: ignore + if filetype == ExportFormat.ZIP + else tarfile.open(target_file, mode="w:gz") + ) as output_data: + + # 2 - Create CSV files + for ts_data in matrix.data: + output = StringIO() + writer = csv.writer(output, quoting=csv.QUOTE_NONE) + nb_rows, csv_titles = StudyDownloader.export_infos( + ts_data.data ) - writer.writerow(csv_titles) - row_date = datetime.strptime( - matrix.index.start_date, "%Y-%m-%d %H:%M:%S" - ) - for year in ts_data.data: - for i in range(0, nb_rows): - columns = ts_data.data[year] - csv_row: List[Optional[Union[int, float, str]]] = [ - str(row_date), - int(year), - ] - csv_row.extend( - [column_data.data[i] for column_data in columns] + if nb_rows == -1: + raise Exception( + f"Outputs export: No rows for {ts_data.name} csv" ) - writer.writerow(csv_row) - if ( - matrix.index.level == StudyDownloadLevelDTO.WEEKLY - and i == 0 - ): - row_date = row_date + timedelta( - days=matrix.index.first_week_size + writer.writerow(csv_titles) + row_date = datetime.strptime( + matrix.index.start_date, "%Y-%m-%d %H:%M:%S" + ) + for year in ts_data.data: + for i in range(0, nb_rows): + columns = ts_data.data[year] + csv_row: List[Optional[Union[int, float, str]]] = [ + str(row_date), + int(year), + ] + csv_row.extend( + [ + column_data.data[i] + for column_data in columns + ] ) - else: - row_date = matrix.index.level.inc_date(row_date) + writer.writerow(csv_row) + if ( + matrix.index.level + == StudyDownloadLevelDTO.WEEKLY + and i == 0 + ): + row_date = row_date + timedelta( + days=matrix.index.first_week_size + ) + else: + row_date = matrix.index.level.inc_date( + row_date + ) - bytes_data = str.encode(output.getvalue(), "utf-8") - if isinstance(output_data, ZipFile): - output_data.writestr(f"{ts_data.name}.csv", bytes_data) - else: - data_file = BytesIO(bytes_data) - data_file.seek(0, os.SEEK_END) - file_size = data_file.tell() - data_file.seek(0) - info = tarfile.TarInfo(name=f"{ts_data.name}.csv") - info.size = file_size - output_data.addfile(tarinfo=info, fileobj=data_file) + bytes_data = str.encode(output.getvalue(), "utf-8") + if isinstance(output_data, ZipFile): + output_data.writestr(f"{ts_data.name}.csv", bytes_data) + else: + data_file = BytesIO(bytes_data) + data_file.seek(0, os.SEEK_END) + file_size = data_file.tell() + data_file.seek(0) + info = tarfile.TarInfo(name=f"{ts_data.name}.csv") + info.size = file_size + output_data.addfile(tarinfo=info, fileobj=data_file) diff --git a/antarest/study/storage/utils.py b/antarest/study/storage/utils.py index 66d352ecaa..da30ae188f 100644 --- a/antarest/study/storage/utils.py +++ b/antarest/study/storage/utils.py @@ -20,6 +20,7 @@ from antarest.core.model import PermissionInfo, StudyPermissionType, PublicMode from antarest.core.permissions import check_permission from antarest.core.requests import UserHasNotPermissionError +from antarest.core.utils.utils import assert_this from antarest.study.model import ( DEFAULT_WORKSPACE_NAME, Study, @@ -33,6 +34,7 @@ from antarest.study.storage.rawstudy.model.filesystem.root.filestudytree import ( FileStudyTree, ) +from antarest.study.storage.rawstudy.model.helpers import FileStudyHelpers logger = logging.getLogger(__name__) @@ -108,6 +110,13 @@ def fix_study_root(study_path: Path) -> None: shutil.rmtree(sub_root_path) +def find_single_output_path(all_output_path: Path) -> Path: + children = os.listdir(all_output_path) + if len(children) == 1: + return find_single_output_path(all_output_path / children[0]) + return all_output_path + + def extract_output_name(path_output: Path) -> str: ini_reader = IniReader() info_antares_output = ini_reader.read(path_output / "info.antares-output")[ @@ -224,19 +233,7 @@ def get_start_date( level: granularity of the steps """ - config = ( - file_study.tree.get( - [ - "output", - output_id, - "about-the-study", - "parameters", - "general", - ] - ) - if output_id is not None - else file_study.tree.get(["settings", "generaldata", "general"]) - ) + config = FileStudyHelpers.get_config(file_study, output_id)["general"] starting_month = cast(str, config.get("first-month-in-year")) starting_day = cast(str, config.get("january.1st")) leapyear = cast(bool, config.get("leapyear")) diff --git a/antarest/study/storage/variantstudy/command_factory.py b/antarest/study/storage/variantstudy/command_factory.py index 63cc65b088..da97e08d51 100644 --- a/antarest/study/storage/variantstudy/command_factory.py +++ b/antarest/study/storage/variantstudy/command_factory.py @@ -79,11 +79,12 @@ def __init__( self, generator_matrix_constants: GeneratorMatrixConstants, matrix_service: ISimpleMatrixService, + patch_service: PatchService, ): self.command_context = CommandContext( generator_matrix_constants=generator_matrix_constants, matrix_service=matrix_service, - patch_service=PatchService(), + patch_service=patch_service, ) def _to_single_icommand(self, action: str, args: JSON) -> ICommand: diff --git a/antarest/study/storage/variantstudy/model/command/icommand.py b/antarest/study/storage/variantstudy/model/command/icommand.py index 68e8445d35..b33de5ca6a 100644 --- a/antarest/study/storage/variantstudy/model/command/icommand.py +++ b/antarest/study/storage/variantstudy/model/command/icommand.py @@ -1,6 +1,7 @@ import logging from abc import ABC, abstractmethod from typing import List, Tuple, Dict, Any +from typing import TYPE_CHECKING from pydantic import BaseModel @@ -18,6 +19,11 @@ ) from antarest.study.storage.variantstudy.model.model import CommandDTO +if TYPE_CHECKING: # False at runtime, for mypy + from antarest.study.storage.variantstudy.model.command.utils_extractor import ( + CommandExtractor, + ) + MATCH_SIGNATURE_SEPARATOR = "%" logger = logging.getLogger(__name__) @@ -102,5 +108,15 @@ def _create_diff(self, other: "ICommand") -> List["ICommand"]: def get_inner_matrices(self) -> List[str]: raise NotImplementedError() + def _get_command_extractor(self) -> "CommandExtractor": + from antarest.study.storage.variantstudy.model.command.utils_extractor import ( + CommandExtractor, + ) + + return CommandExtractor( + self.command_context.matrix_service, + self.command_context.patch_service, + ) + class Config: arbitrary_types_allowed = True diff --git a/antarest/study/storage/variantstudy/model/command/remove_area.py b/antarest/study/storage/variantstudy/model/command/remove_area.py index a0d4436399..9e2fa9ccda 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_area.py +++ b/antarest/study/storage/variantstudy/model/command/remove_area.py @@ -1,5 +1,5 @@ import logging -from typing import Any, List, Optional, Tuple, Dict +from typing import Any, List, Tuple, Dict from antarest.core.model import JSON from antarest.study.storage.rawstudy.model.filesystem.config.model import ( @@ -194,9 +194,6 @@ def revert( from antarest.study.storage.variantstudy.model.command.create_area import ( CreateArea, ) - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) for command in reversed(history): if ( @@ -207,10 +204,10 @@ def revert( return [command] try: - area_commands, links_commands = ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).extract_area(base, self.id) + ( + area_commands, + links_commands, + ) = self._get_command_extractor().extract_area(base, self.id) # todo revert binding constraints that has the area in constraint return area_commands + links_commands except ChildNotFoundError as e: diff --git a/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py index 765069b0fc..da9722e659 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/remove_binding_constraint.py @@ -1,5 +1,5 @@ import logging -from typing import Any, List, Optional, Tuple, Dict +from typing import Any, List, Tuple, Dict from antarest.core.model import JSON from antarest.study.storage.rawstudy.model.filesystem.config.model import ( @@ -88,9 +88,6 @@ def revert( from antarest.study.storage.variantstudy.model.command.create_binding_constraint import ( CreateBindingConstraint, ) - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) for command in reversed(history): if ( @@ -100,10 +97,9 @@ def revert( return [command] try: - return ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).extract_binding_constraint(base, self.id) + return self._get_command_extractor().extract_binding_constraint( + base, self.id + ) except Exception as e: logging.getLogger(__name__).warning( f"Failed to extract revert command for remove_binding_constraint {self.id}", diff --git a/antarest/study/storage/variantstudy/model/command/remove_cluster.py b/antarest/study/storage/variantstudy/model/command/remove_cluster.py index e63d64152b..46f7f01d16 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_cluster.py +++ b/antarest/study/storage/variantstudy/model/command/remove_cluster.py @@ -165,9 +165,6 @@ def revert( from antarest.study.storage.variantstudy.model.command.create_cluster import ( CreateCluster, ) - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) for command in reversed(history): if ( @@ -180,10 +177,9 @@ def revert( return [command] try: - return ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).extract_cluster(base, self.area_id, self.cluster_id) + return self._get_command_extractor().extract_cluster( + base, self.area_id, self.cluster_id + ) # todo revert binding constraints that has the cluster in constraint except ChildNotFoundError as e: logging.getLogger(__name__).warning( diff --git a/antarest/study/storage/variantstudy/model/command/remove_district.py b/antarest/study/storage/variantstudy/model/command/remove_district.py index 4d8d7d98a5..7fe8a69c67 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_district.py +++ b/antarest/study/storage/variantstudy/model/command/remove_district.py @@ -1,14 +1,11 @@ import logging -from typing import Any, List, Optional, Tuple, Dict +from typing import Any, List, Tuple, Dict from antarest.study.storage.rawstudy.model.filesystem.config.model import ( transform_name_to_id, FileStudyTreeConfig, ) from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy -from antarest.study.storage.rawstudy.model.filesystem.folder_node import ( - ChildNotFoundError, -) from antarest.study.storage.variantstudy.model.command.common import ( CommandOutput, CommandName, @@ -63,9 +60,6 @@ def revert( from antarest.study.storage.variantstudy.model.command.create_district import ( CreateDistrict, ) - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) for command in reversed(history): if ( @@ -74,10 +68,9 @@ def revert( ): return [command] try: - return ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).extract_district(base, self.id) + return self._get_command_extractor().extract_district( + base, self.id + ) except Exception as e: logging.getLogger(__name__).warning( f"Failed to extract revert command for remove_district {self.id}", diff --git a/antarest/study/storage/variantstudy/model/command/remove_link.py b/antarest/study/storage/variantstudy/model/command/remove_link.py index d1f344233a..0487de553d 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_link.py +++ b/antarest/study/storage/variantstudy/model/command/remove_link.py @@ -142,9 +142,6 @@ def revert( from antarest.study.storage.variantstudy.model.command.create_link import ( CreateLink, ) - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) for command in reversed(history): if ( @@ -155,10 +152,9 @@ def revert( return [command] area_from, area_to = sorted([self.area1, self.area2]) try: - return ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).extract_link(base, area_from, area_to) + return self._get_command_extractor().extract_link( + base, area_from, area_to + ) except ChildNotFoundError as e: logging.getLogger(__name__).warning( f"Failed to extract revert command for remove_link {self.area1}/{self.area2}", diff --git a/antarest/study/storage/variantstudy/model/command/remove_renewables_cluster.py b/antarest/study/storage/variantstudy/model/command/remove_renewables_cluster.py index 9f4b661e11..61542cc046 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_renewables_cluster.py +++ b/antarest/study/storage/variantstudy/model/command/remove_renewables_cluster.py @@ -167,9 +167,6 @@ def revert( from antarest.study.storage.variantstudy.model.command.create_renewables_cluster import ( CreateRenewablesCluster, ) - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) for command in reversed(history): if ( @@ -181,10 +178,9 @@ def revert( return [command] try: - return ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).extract_renewables_cluster(base, self.area_id, self.cluster_id) + return self._get_command_extractor().extract_renewables_cluster( + base, self.area_id, self.cluster_id + ) except ChildNotFoundError as e: logging.getLogger(__name__).warning( f"Failed to extract revert command for remove_cluster {self.area_id}#{self.cluster_id}", diff --git a/antarest/study/storage/variantstudy/model/command/replace_matrix.py b/antarest/study/storage/variantstudy/model/command/replace_matrix.py index 89e3177367..31f100bf71 100644 --- a/antarest/study/storage/variantstudy/model/command/replace_matrix.py +++ b/antarest/study/storage/variantstudy/model/command/replace_matrix.py @@ -117,16 +117,12 @@ def revert( and command.target == self.target ): return [command] - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) try: return [ - ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).generate_replace_matrix(base.tree, self.target.split("/")) + self._get_command_extractor().generate_replace_matrix( + base.tree, self.target.split("/") + ) ] except ChildNotFoundError: return ( diff --git a/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py b/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py index d94028fe28..ccea8fe05d 100644 --- a/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py +++ b/antarest/study/storage/variantstudy/model/command/update_binding_constraint.py @@ -157,14 +157,10 @@ def revert( command_context=command.command_context, ) ] - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) - return ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).extract_binding_constraint(base, self.id) + return self._get_command_extractor().extract_binding_constraint( + base, self.id + ) def _create_diff(self, other: "ICommand") -> List["ICommand"]: return [other] diff --git a/antarest/study/storage/variantstudy/model/command/update_comments.py b/antarest/study/storage/variantstudy/model/command/update_comments.py index 00d1168fa0..6cdd801525 100644 --- a/antarest/study/storage/variantstudy/model/command/update_comments.py +++ b/antarest/study/storage/variantstudy/model/command/update_comments.py @@ -1,4 +1,4 @@ -from typing import Any, List, Optional, Tuple, Dict +from typing import Any, List, Tuple, Dict from antarest.core.model import JSON from antarest.study.storage.rawstudy.model.filesystem.config.model import ( @@ -72,16 +72,11 @@ def revert( if isinstance(command, UpdateComments): return [command] - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) - try: return [ - ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).generate_update_comments(base.tree) + self._get_command_extractor().generate_update_comments( + base.tree + ) ] except ChildNotFoundError: return [] # if the file does not exist, there is nothing to revert diff --git a/antarest/study/storage/variantstudy/model/command/update_config.py b/antarest/study/storage/variantstudy/model/command/update_config.py index 546202e274..790dfae5cd 100644 --- a/antarest/study/storage/variantstudy/model/command/update_config.py +++ b/antarest/study/storage/variantstudy/model/command/update_config.py @@ -1,4 +1,5 @@ import logging +from pathlib import Path from typing import Any, Union, List, Tuple, Dict from antarest.core.model import JSON @@ -47,6 +48,7 @@ def _apply(self, study_data: FileStudy) -> CommandOutput: ) study_data.tree.save(self.data, url) + output, _ = self._apply_config(study_data.config) return output @@ -75,29 +77,43 @@ def match(self, other: ICommand, equal: bool = False) -> bool: def revert( self, history: List["ICommand"], base: FileStudy ) -> List["ICommand"]: + update_config_list: List[UpdateConfig] = [] + self_target_path = Path(self.target) + parent_path: Path = Path(".") for command in reversed(history): - if ( - isinstance(command, UpdateConfig) - and command.target == self.target - ): - return [command] - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) + if isinstance(command, UpdateConfig): + # adding all the UpdateConfig commands until we find one containing self (or the end) + update_config_list.append(command) + if command.target == self.target: + return [command] + elif Path(command.target) in self_target_path.parents: + # found the last parent command. + parent_path = Path(command.target) + break - try: - return [ - ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).generate_update_config(base.tree, self.target.split("/")) - ] - except ChildNotFoundError as e: - logging.getLogger(__name__).warning( - f"Failed to extract revert command for update_config {self.target}", - exc_info=e, - ) - return [] + output_list: List[ICommand] = [ + command + for command in update_config_list[::-1] + if parent_path in Path(command.target).parents + or str(parent_path) == command.target + ] + + if not output_list: + + try: + output_list = [ + self._get_command_extractor().generate_update_config( + base.tree, self.target.split("/") + ) + ] + except ChildNotFoundError as e: + logging.getLogger(__name__).warning( + f"Failed to extract revert command for update_config {self.target}", + exc_info=e, + ) + output_list = [] + + return output_list def _create_diff(self, other: "ICommand") -> List["ICommand"]: return [other] diff --git a/antarest/study/storage/variantstudy/model/command/update_raw_file.py b/antarest/study/storage/variantstudy/model/command/update_raw_file.py index 40d45b8974..10c15509ea 100644 --- a/antarest/study/storage/variantstudy/model/command/update_raw_file.py +++ b/antarest/study/storage/variantstudy/model/command/update_raw_file.py @@ -75,15 +75,11 @@ def revert( and command.target == self.target ): return [command] - from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, - ) return [ - ( - self.command_context.command_extractor - or CommandExtraction(self.command_context.matrix_service) - ).generate_update_rawfile(base.tree, self.target.split("/")) + self._get_command_extractor().generate_update_rawfile( + base.tree, self.target.split("/") + ) ] def _create_diff(self, other: "ICommand") -> List["ICommand"]: diff --git a/antarest/study/storage/variantstudy/model/command/utils_extractor.py b/antarest/study/storage/variantstudy/model/command/utils_extractor.py index ade330db33..5f545d2cf6 100644 --- a/antarest/study/storage/variantstudy/model/command/utils_extractor.py +++ b/antarest/study/storage/variantstudy/model/command/utils_extractor.py @@ -63,16 +63,19 @@ logger = logging.getLogger(__name__) -class CommandExtraction(ICommandExtractor): - def __init__(self, matrix_service: ISimpleMatrixService): +class CommandExtractor(ICommandExtractor): + def __init__( + self, matrix_service: ISimpleMatrixService, patch_service: PatchService + ): self.matrix_service = matrix_service self.generator_matrix_constants = GeneratorMatrixConstants( self.matrix_service ) + self.patch_service = patch_service self.command_context = CommandContext( generator_matrix_constants=self.generator_matrix_constants, matrix_service=self.matrix_service, - patch_service=PatchService(), + patch_service=self.patch_service, ) self.null_matrix_id = strip_matrix_protocol( self.generator_matrix_constants.get_null_matrix() @@ -558,7 +561,7 @@ def generate_replace_matrix( default_value: Optional[str] = None, ) -> ICommand: data = study_tree.get(url) - matrix = CommandExtraction.get_matrix(data, default_value is None) + matrix = CommandExtractor.get_matrix(data, default_value is None) return ReplaceMatrix( target="/".join(url), matrix=matrix or default_value, diff --git a/antarest/study/storage/variantstudy/model/command_context.py b/antarest/study/storage/variantstudy/model/command_context.py index c7a669cd71..e43dab3e1b 100644 --- a/antarest/study/storage/variantstudy/model/command_context.py +++ b/antarest/study/storage/variantstudy/model/command_context.py @@ -1,22 +1,16 @@ -from typing import Optional - from pydantic import BaseModel -from antarest.matrixstore.service import MatrixService, ISimpleMatrixService +from antarest.matrixstore.service import ISimpleMatrixService from antarest.study.storage.patch_service import PatchService from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( GeneratorMatrixConstants, ) -from antarest.study.storage.variantstudy.model.interfaces import ( - ICommandExtractor, -) class CommandContext(BaseModel): generator_matrix_constants: GeneratorMatrixConstants matrix_service: ISimpleMatrixService patch_service: PatchService - command_extractor: Optional[ICommandExtractor] = None # used in tests class Config: arbitrary_types_allowed = True diff --git a/antarest/study/storage/variantstudy/variant_command_extractor.py b/antarest/study/storage/variantstudy/variant_command_extractor.py index 581516aa86..91af9310ba 100644 --- a/antarest/study/storage/variantstudy/variant_command_extractor.py +++ b/antarest/study/storage/variantstudy/variant_command_extractor.py @@ -3,6 +3,7 @@ from antarest.core.utils.utils import StopWatch from antarest.matrixstore.service import ISimpleMatrixService +from antarest.study.storage.patch_service import PatchService from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( GeneratorMatrixConstants, @@ -13,7 +14,7 @@ ) from antarest.study.storage.variantstudy.model.command.icommand import ICommand from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, + CommandExtractor, ) from antarest.study.storage.variantstudy.model.model import CommandDTO @@ -21,12 +22,16 @@ class VariantCommandsExtractor: - def __init__(self, matrix_service: ISimpleMatrixService): + def __init__( + self, matrix_service: ISimpleMatrixService, patch_service: PatchService + ): self.matrix_service = matrix_service self.generator_matrix_constants = GeneratorMatrixConstants( self.matrix_service ) - self.command_extractor = CommandExtraction(self.matrix_service) + self.command_extractor = CommandExtractor( + self.matrix_service, patch_service=patch_service + ) def extract(self, study: FileStudy) -> List[CommandDTO]: stopwatch = StopWatch() @@ -117,6 +122,7 @@ def diff( command_factory = CommandFactory( generator_matrix_constants=self.generator_matrix_constants, matrix_service=self.matrix_service, + patch_service=self.command_extractor.patch_service, ) logger.info("Parsing commands") base_commands: List[ICommand] = [] diff --git a/antarest/study/storage/variantstudy/variant_command_generator.py b/antarest/study/storage/variantstudy/variant_command_generator.py index d207f80aa5..9f3c1bca15 100644 --- a/antarest/study/storage/variantstudy/variant_command_generator.py +++ b/antarest/study/storage/variantstudy/variant_command_generator.py @@ -122,16 +122,15 @@ def generate( ) -> GenerationResultInfoDTO: # Build file study logger.info("Building study tree") - study_config, study_tree = self.study_factory.create_from_fs( + study = self.study_factory.create_from_fs( dest_path, "", use_cache=False ) if metadata: - update_antares_info(metadata, study_tree) - file_study = FileStudy(config=study_config, tree=study_tree) + update_antares_info(metadata, study.tree) results = VariantCommandGenerator._generate( commands, - file_study, + study, lambda command, data: command.apply(cast(FileStudy, data)), metadata, notifier, diff --git a/antarest/study/storage/variantstudy/variant_study_service.py b/antarest/study/storage/variantstudy/variant_study_service.py index 89151853e6..be5518e30f 100644 --- a/antarest/study/storage/variantstudy/variant_study_service.py +++ b/antarest/study/storage/variantstudy/variant_study_service.py @@ -47,6 +47,7 @@ StudyMetadataDTO, StudySimResultDTO, RawStudy, + StudyAdditionalData, ) from antarest.study.storage.abstract_storage_service import ( AbstractStorageService, @@ -423,7 +424,7 @@ def get_all_variants_children( ) children_tree = VariantTreeDTO( - node=self.get_study_information(study, summary=True), + node=self.get_study_information(study), children=[], ) children = self.repository.get_children(parent_id=parent_id) @@ -460,12 +461,10 @@ def get_direct_parent( return ( self.get_study_information( parent, - summary=True, ) if isinstance(parent, VariantStudy) else self.raw_study_service.get_study_information( parent, - summary=True, ) ) return None @@ -477,12 +476,10 @@ def _get_variants_parents( metadata = ( self.get_study_information( study, - summary=True, ) if isinstance(study, VariantStudy) else self.raw_study_service.get_study_information( study, - summary=True, ) ) output_list: List[StudyMetadataDTO] = [metadata] @@ -552,6 +549,14 @@ def create_variant_study( assert_permission(params.user, study, StudyPermissionType.READ) new_id = str(uuid4()) study_path = str(get_default_workspace_path(self.config) / new_id) + if not study.additional_data: + additional_data = StudyAdditionalData() + else: + additional_data = StudyAdditionalData( + horizon=study.additional_data.horizon, + author=study.additional_data.author, + patch=study.additional_data.patch, + ) variant_study = VariantStudy( id=new_id, name=name, @@ -564,6 +569,7 @@ def create_variant_study( groups=study.groups, # Create inherit_group boolean owner_id=params.user.impersonator if params.user else None, snapshot=None, + additional_data=additional_data, ) self.repository.save(variant_study) self.event_bus.push( @@ -709,13 +715,20 @@ def _generate( variant_study ) ) + + is_parent_newer = ( + parent_study.updated_at > variant_study.snapshot.created_at + if variant_study.snapshot + else True + ) last_executed_command_index = ( None - if ( + if is_parent_newer + or from_scratch + or ( isinstance(parent_study, VariantStudy) and not self.exists(parent_study) ) - or from_scratch else last_executed_command_index ) @@ -779,15 +792,18 @@ def _generate( if last_command_index >= 0 else None, ) + study = self.study_factory.create_from_fs( + self.get_study_path(variant_study), + study_id=variant_study.id, + ) + variant_study.additional_data = ( + self._read_additional_data_from_files(study) + ) self.repository.save(variant_study) logger.info(f"Saving new snapshot for study {variant_study.id}") if denormalize: - config, study_tree = self.study_factory.create_from_fs( - self.get_study_path(variant_study), - study_id=variant_study.id, - ) logger.info(f"Denormalizing variant study {variant_study.id}") - study_tree.denormalize() + study.tree.denormalize() return results def _generate_study_config( @@ -798,12 +814,13 @@ def _generate_study_config( raise StudyNotFoundError(metadata.parent_id) if isinstance(parent_study, RawStudy): - parent_config, _ = self.study_factory.create_from_fs( + study = self.study_factory.create_from_fs( Path(parent_study.path), parent_study.id, Path(parent_study.path) / "output", use_cache=True, ) + parent_config = study.config else: res, parent_config = self._generate_study_config( parent_study, config @@ -942,6 +959,14 @@ def copy( """ new_id = str(uuid4()) study_path = str(get_default_workspace_path(self.config) / new_id) + if not src_meta.additional_data: + additional_data = StudyAdditionalData() + else: + additional_data = StudyAdditionalData( + horizon=src_meta.additional_data.horizon, + author=src_meta.additional_data.author, + patch=src_meta.additional_data.patch, + ) dest_meta = VariantStudy( id=new_id, name=dest_name, @@ -953,6 +978,7 @@ def copy( version=src_meta.version, groups=src_meta.groups, # Create inherit_group boolean snapshot=None, + additional_data=additional_data, ) dest_meta.commands = [ @@ -1009,25 +1035,28 @@ def _get_snapshot_last_executed_command_index( return None def get_raw( - self, metadata: VariantStudy, use_cache: bool = True + self, + metadata: VariantStudy, + use_cache: bool = True, + output_dir: Optional[Path] = None, ) -> FileStudy: """ Fetch a study raw tree object and its config Args: metadata: study use_cache: use cache + output_dir: optional output dir override Returns: the config and study tree object """ self._safe_generation(metadata) study_path = self.get_study_path(metadata) - study_config, study_tree = self.study_factory.create_from_fs( + return self.study_factory.create_from_fs( study_path, metadata.id, - Path(metadata.path) / "output", + output_dir or Path(metadata.path) / "output", use_cache=use_cache, ) - return FileStudy(config=study_config, tree=study_tree) def get_study_sim_result( self, study: VariantStudy @@ -1116,9 +1145,9 @@ def export_study_flat( stop_time = time.time() duration = "{:.3f}".format(stop_time - start_time) logger.info(f"Study {path_study} exported (flat mode) in {duration}s") - _, study = self.study_factory.create_from_fs(dest, "", use_cache=False) + study = self.study_factory.create_from_fs(dest, "", use_cache=False) if denormalize: - study.denormalize() + study.tree.denormalize() duration = "{:.3f}".format(time.time() - stop_time) logger.info(f"Study {path_study} denormalized in {duration}s") @@ -1145,3 +1174,23 @@ def get_synthesis( raise VariantGenerationError( f"Error during light generation of {metadata.id}" ) + + def initialize_additional_data(self, variant_study: VariantStudy) -> bool: + try: + if self.exists(variant_study): + study = self.study_factory.create_from_fs( + self.get_study_path(variant_study), + study_id=variant_study.id, + ) + variant_study.additional_data = ( + self._read_additional_data_from_files(study) + ) + else: + variant_study.additional_data = StudyAdditionalData() + return True + except Exception as e: + logger.error( + f"Error while reading additional data for study {variant_study.id}", + exc_info=e, + ) + return False diff --git a/antarest/study/web/studies_blueprint.py b/antarest/study/web/studies_blueprint.py index bd6fc53bfd..3007537511 100644 --- a/antarest/study/web/studies_blueprint.py +++ b/antarest/study/web/studies_blueprint.py @@ -1,5 +1,4 @@ import io -import json import logging from http import HTTPStatus from pathlib import Path @@ -61,14 +60,13 @@ def create_study_routes( response_model=Dict[str, StudyMetadataDTO], ) def get_studies( - summary: bool = False, managed: bool = False, current_user: JWTUser = Depends(auth.get_current_user), ) -> Any: logger.info(f"Fetching study list", extra={"user": current_user.id}) params = RequestParameters(user=current_user) available_studies = study_service.get_studies_information( - summary, managed, params + managed, params ) return available_studies @@ -558,4 +556,20 @@ def unarchive_study( params = RequestParameters(user=current_user) return study_service.unarchive(study_id, params) + @bp.post( + "/studies/_initialize_additional_data_in_db", + summary="Initialize additional data in db", + tags=[APITag.study_management], + ) + def initialize_additional_data_in_db( + current_user: JWTUser = Depends(auth.get_current_user), + ) -> Any: + # TODO: remove this method once used + logger.info( + f"Initializing additional data in db", + extra={"user": current_user.id}, + ) + params = RequestParameters(user=current_user) + return study_service.initialize_additional_data_in_db(params) + return bp diff --git a/antarest/study/web/study_data_blueprint.py b/antarest/study/web/study_data_blueprint.py index fd649218a2..5241fc528e 100644 --- a/antarest/study/web/study_data_blueprint.py +++ b/antarest/study/web/study_data_blueprint.py @@ -1,5 +1,5 @@ import logging -from typing import Any, Optional, List, Dict, Union, cast +from typing import Any, Optional, List, Dict, Union from fastapi import APIRouter, Depends, Body @@ -11,15 +11,15 @@ from antarest.core.utils.web import APITag from antarest.login.auth import Auth from antarest.matrixstore.business.matrix_editor import MatrixSlice, Operation -from antarest.study.business.link_management import LinkInfoDTO -from antarest.study.model import PatchCluster, PatchArea -from antarest.study.service import StudyService from antarest.study.business.area_management import ( AreaType, AreaCreationDTO, AreaInfoDTO, AreaUI, ) +from antarest.study.business.link_management import LinkInfoDTO +from antarest.study.model import PatchCluster, PatchArea +from antarest.study.service import StudyService logger = logging.getLogger(__name__) @@ -43,19 +43,20 @@ def create_study_data_routes( "/studies/{uuid}/areas", tags=[APITag.study_data], summary="Get all areas basic info", - response_model=List[AreaInfoDTO], + response_model=Union[List[AreaInfoDTO], Dict[str, Any]], # type: ignore ) def get_areas( uuid: str, type: Optional[AreaType] = None, + ui: bool = False, current_user: JWTUser = Depends(auth.get_current_user), - ) -> Any: + ) -> Union[List[AreaInfoDTO], Dict[str, Any]]: logger.info( f"Fetching area list (type={type}) for study {uuid}", extra={"user": current_user.id}, ) params = RequestParameters(user=current_user) - areas_list = study_service.get_all_areas(uuid, type, params) + areas_list = study_service.get_all_areas(uuid, type, ui, params) return areas_list @bp.get( @@ -214,4 +215,15 @@ def edit_matrix( params = RequestParameters(user=current_user) study_service.update_matrix(uuid, path, slices, operation, params) + @bp.post( + "/studies/_update_version", + tags=[APITag.study_data], + summary="update database version of all studies", + ) + def update_version( + current_user: JWTUser = Depends(auth.get_current_user), + ) -> Any: + params = RequestParameters(user=current_user) + study_service.check_and_update_all_study_versions_in_database(params) + return bp diff --git a/antarest/study/web/xpansion_studies_blueprint.py b/antarest/study/web/xpansion_studies_blueprint.py index 5e85953b45..9df7a9cb5e 100644 --- a/antarest/study/web/xpansion_studies_blueprint.py +++ b/antarest/study/web/xpansion_studies_blueprint.py @@ -40,6 +40,7 @@ def create_xpansion_routes( ) def create_xpansion_configuration( uuid: str, + file: Optional[UploadFile] = File(None), current_user: JWTUser = Depends(auth.get_current_user), ) -> Any: logger.info( @@ -47,7 +48,9 @@ def create_xpansion_configuration( extra={"user": current_user.id}, ) params = RequestParameters(user=current_user) - study_service.create_xpansion_configuration(uuid=uuid, params=params) + study_service.create_xpansion_configuration( + uuid=uuid, zipped_config=file, params=params + ) @bp.delete( "/studies/{uuid}/extensions/xpansion", diff --git a/antarest/tools/lib.py b/antarest/tools/lib.py index dbaafb5bab..ffb77374c3 100644 --- a/antarest/tools/lib.py +++ b/antarest/tools/lib.py @@ -28,8 +28,8 @@ STUDY_REFERENCE_TEMPLATES, NEW_DEFAULT_STUDY_VERSION, ) +from antarest.study.storage.patch_service import PatchService from antarest.study.storage.rawstudy.model.filesystem.factory import ( - FileStudy, StudyFactory, ) from antarest.study.storage.utils import create_new_empty_study @@ -159,10 +159,11 @@ def apply_commands( stopwatch = StopWatch() matrix_service = SimpleMatrixService(matrices_dir) matrix_resolver = UriResolverService(matrix_service) + local_cache = LocalCache(CacheConfig()) study_factory = StudyFactory( matrix=matrix_service, resolver=matrix_resolver, - cache=LocalCache(CacheConfig()), + cache=local_cache, ) generator = VariantCommandGenerator(study_factory) command_factory = CommandFactory( @@ -170,6 +171,7 @@ def apply_commands( matrix_service ), matrix_service=matrix_service, + patch_service=PatchService(), ) command_objs: List[List[ICommand]] = [] @@ -184,12 +186,12 @@ def apply_commands( ) if result.success: logger.info("Building new study tree") - config, study_tree = study_factory.create_from_fs( + study = study_factory.create_from_fs( self.output_path, study_id="", use_cache=False ) logger.info("Denormalizing study") stopwatch.reset_current() - study_tree.denormalize() + study.tree.denormalize() stopwatch.log_elapsed( lambda x: logger.info(f"Denormalized done in {x}s") ) @@ -217,18 +219,21 @@ def extract_commands(study_path: Path, commands_output_dir: Path) -> None: matrix_service = SimpleMatrixService(matrices_dir) matrix_resolver = UriResolverService(matrix_service) + cache = LocalCache(CacheConfig()) study_factory = StudyFactory( matrix=matrix_service, resolver=matrix_resolver, - cache=LocalCache(CacheConfig()), + cache=cache, ) - study_config, study_tree = study_factory.create_from_fs( + study = study_factory.create_from_fs( study_path, str(study_path), use_cache=False ) local_matrix_service = SimpleMatrixService(matrices_dir) - extractor = VariantCommandsExtractor(local_matrix_service) - command_list = extractor.extract(FileStudy(study_config, study_tree)) + extractor = VariantCommandsExtractor( + local_matrix_service, patch_service=PatchService() + ) + command_list = extractor.extract(study) with open(commands_output_dir / COMMAND_FILE, "w") as fh: json.dump( @@ -261,8 +266,9 @@ def generate_diff( local_matrix_service = SimpleMatrixService(matrices_dir) resolver = UriResolverService(matrix_service=local_matrix_service) + cache = LocalCache() study_factory = StudyFactory( - matrix=local_matrix_service, resolver=resolver, cache=LocalCache() + matrix=local_matrix_service, resolver=resolver, cache=cache ) create_new_empty_study( @@ -271,8 +277,7 @@ def generate_diff( path_resources=get_local_path() / "resources", ) - config, tree = study_factory.create_from_fs(path_study, study_id) - empty_study = FileStudy(config=config, tree=tree) + empty_study = study_factory.create_from_fs(path_study, study_id) base_command_file = base / COMMAND_FILE if not base_command_file.exists(): @@ -302,7 +307,9 @@ def generate_diff( lambda x: logger.info(f"Variant input matrix copied in {x}s") ) - extractor = VariantCommandsExtractor(local_matrix_service) + extractor = VariantCommandsExtractor( + local_matrix_service, patch_service=PatchService() + ) diff_commands = extractor.diff( base=parse_commands(base_command_file), variant=parse_commands(variant_command_file), diff --git a/docs/architecture/1-database.md b/docs/architecture/1-database.md new file mode 100644 index 0000000000..f7bccad0b9 --- /dev/null +++ b/docs/architecture/1-database.md @@ -0,0 +1,71 @@ +# Database management + +We support two database types : +- postgresql (for production deployment) +- sqlite (for the local desktop application) + +## SQLAlchemy & Alembic + +We use [sqlalchemy](https://www.sqlalchemy.org/) and [alembic](https://alembic.sqlalchemy.org/en/latest/) +to manage database and database entities. + +Schema is described by sqlalchemy models that are grouped and imported within +the file [dbmodel.py](https://github.com/AntaresSimulatorTeam/AntaREST/blob/master/antarest/dbmodel.py). +This file is then used by alembic [env file](https://github.com/AntaresSimulatorTeam/AntaREST/blob/master/alembic/env.py) +to create the [database migration scripts](https://github.com/AntaresSimulatorTeam/AntaREST/blob/master/alembic/versions). + +These migration scripts are used by alembic to update a target database defined in the env file which +uses the database url defined in an [application config]('../install/2-CONFIG.md'), whether on command line +(this is the method used on production deployment): +``` +export ANTAREST_CONF= +alembic upgrade head +``` +or within the application launch (see [this file](https://github.com/AntaresSimulatorTeam/AntaREST/blob/master/antarest/core/persistence.py)) : +``` +python antarest/main.py --auto-upgrade-db +# or with the gui (default auto upgrade) +python antarest/gui.py +``` + +### How to update the schema + +When developing for antarest we use a development configuration file that target +a development database (usually sqlite but could be postgresql). After a first successful launch the database +schema is migrated to the latest version. +The schema version is stored in a table named `alembic_version` that contains the revision id of the last migration file. +This information should match with the result of the command `alembic show head` that display the last revision id of the migration file tree. + +To update the schema, there is two step. + +First we make the modification we want in the existing models (for instance in `study/model.py`, `login/model.py`, etc.) +or create **new models in a separate file that will need to be added to the [dbmodel.py](https://github.com/AntaresSimulatorTeam/AntaREST/blob/master/antarest/dbmodel.py) file**. +Most of the unit test that create the database from scratch using `sqlalchemy.sql.schema.MetaData.create_all` will do just fine but the integration tests (`tests/integration`) will probably +fail since they use the alembic migration files process. + +So second step is to create the migration file corresponding to the model change. We could create one from scratch, but most of the time, +the script [create_db_migration.sh](https://github.com/AntaresSimulatorTeam/AntaREST/blob/master/scripts/create_db_migration.sh) (that just wraps the `alembic revision` command) will do: +``` +export ANTAREST_CONF= +./script/create_db_migration.sh +``` +This will create a new migration file in `alembic/versions` that contains two prefilled methods `upgrade` and `downgrade`. +Though for a newly created model the edition of this file should be minimal or nul, edition is sometimes required, especially in these cases: +- handling compatibility/specificity of the databases (eg. adding a sequence `alembic/versions/2ed6bf9f1690_add_tasks.py`) +- migrating data (eg. renaming/moving a field `alembic/versions/0146b79f723c_update_study.py`) + +The `create_db_migration.sh` script will also update the `scripts/rollback.sh` which (as the name indicated) is used to rollback the database to a previous schema. + +At this point the development database is not yet migrated. It is only after launching the app (or calling `alembic upgrade head`) that our +development database will be upgraded. +Now if we want to: +- modify the model +- checkout an other branch to test the application prior to this schema update + +we need to apply the `rollback.sh` script that will revert our local dev database to its previous schema. +Then we will be able to either launch the app at a previous database schema or continue modifying the model and reapply +the migration file creation process (in that case we should delete the now obsolete migration file lastly created). + +/!\ Note that when deploying in production a new version with multiple database migration file, the revision id in `rollback.sh` file +should be the last revision id of the deployed application schema. + \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 4ef5cd572f..baf66c538a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -15,7 +15,7 @@ and a full user guide. Visit the [Antares-Simulator Documentation][readthedocs-a ## Introduction -`antares-web` is a server api interfacing Antares Simulator studies. It provides a web application to manage studies +`antares-web` is a server api interfacing Antares Simulator solver and studies management. It provides a web application to manage studies adding more features to simple edition. This brings: diff --git a/docs/install/0-INSTALL.md b/docs/install/0-INSTALL.md index 8167c8ee66..e26d939a9a 100644 --- a/docs/install/0-INSTALL.md +++ b/docs/install/0-INSTALL.md @@ -3,7 +3,7 @@ Antares-Web is developed mainly in **python** and uses [FastAPI](https://fastapi.tiangolo.com/) web framework. The front end is a [React](https://reactjs.org/) web application. A local build allows using Antares-Web as a desktop application. -## Build and installation details +## Quick start First clone the projet: @@ -28,6 +28,15 @@ Build front cd webapp npm install cd .. -NODE_OPTIONS="--max-old-space-size=8192" ./scripts/build-front.sh +./scripts/build-front.sh ``` +Run the application + +``` +export PYTHONPATH=$(pwd) +python antarest/main.py -c resources/application.yaml --auto-upgrade-db +``` + +## Deploy + diff --git a/docs/install/1-CONFIG.md b/docs/install/1-CONFIG.md new file mode 100644 index 0000000000..d915409934 --- /dev/null +++ b/docs/install/1-CONFIG.md @@ -0,0 +1,8 @@ +# Application Configuration + +Almost all the configuration of the application can be found in the [application.yaml](https://github.com/AntaresSimulatorTeam/AntaREST/blob/master/resources/application.yaml) file.\ +If the path to this configuration file is not explicitly given (option `-c`), the application will try to look for files in the following location (in order): +- `./config.yaml` +- `../config.yaml` +- `$HOME/.antares/config.yaml` + diff --git a/docs/install/2-DEPLOY.md b/docs/install/2-DEPLOY.md new file mode 100644 index 0000000000..20deb0f35b --- /dev/null +++ b/docs/install/2-DEPLOY.md @@ -0,0 +1,16 @@ +# Deployments + +This application can be used in two modes: +- a production dockerized environment +- as a local desktop application + +## Production server deployment + +Requires : +- docker +- redis +- postgresql +- slurm cluster + + +## Local application build \ No newline at end of file diff --git a/docs/user-guide/1-interface.md b/docs/user-guide/1-interface.md index 5341cd7dd1..15be5ebaa1 100644 --- a/docs/user-guide/1-interface.md +++ b/docs/user-guide/1-interface.md @@ -18,7 +18,7 @@ The study listing view is the main view, which provides : - creation/import tool Studies are linked to a "workspace" which refers to a storage disk. The workspace "default" (orange colored) is -the internal storage where "managed" studies live. These studies files aren't meant to be accessible directly (via disk mount for instance).\ +the internal storage where "managed" studies live. These studies files aren't meant to be accessible directly (via disk mount for instance). The other workspaces are studies that are found on mounted workspace and their unique ID can change if the studies are moved. Copied studies are always copied within the managed workspace. These managed studies though not directly accessible offers additional features: @@ -59,7 +59,7 @@ The overview provides access to : The variant tab is only available for managed studies and have one or two sections. -The first section is the variant dependency view. It displays the relation between studies and allows the creation of a child variant for the current study.\ +The first section is the variant dependency view. It displays the relation between studies and allows the creation of a child variant for the current study. We can open a study in the dependency tree by simply clicking on it. ![](../assets/media/img/screenshot_variant_tree.png) @@ -76,7 +76,7 @@ Here we can: ### Detailed view The detailed view is a tree representation of a study files. -It can be browsed and node can be viewed and edited.\ +It can be browsed and node can be viewed and edited. :warning: The view can take some time to load the first time. @@ -102,7 +102,7 @@ The data which can be uploaded are either a single tsv file, or a zipped list of ## User account & api tokens -For normal user, the account section allows the creation of "api token".\ +For normal user, the account section allows the creation of "api token". These token can be used in scripts that will use the [API](#api-documentation). ![](../assets/media/img/screenshot_useraccount.png) diff --git a/mkdocs.yml b/mkdocs.yml index bacdbeed23..a1918c08c1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -35,8 +35,11 @@ nav: - 'Variant manager': 'user-guide/2-variant_manager.md' - 'Build': - 'Introduction': 'install/0-INSTALL.md' + - 'Configuration': 'install/1-CONFIG.md' + - 'Deployment': 'install/2-DEPLOY.md' - 'Develop': - 'Introduction': 'architecture/0-introduction.md' + - 'Database management': 'architecture/1-database.md' - 'Roadmap': 'architecture/5-roadmap.md' - 'Antares ecosystem' : 'https://antares-doc.readthedocs.io' - 'Changelog': 'CHANGELOG.md' diff --git a/scripts/build-front.sh b/scripts/build-front.sh index 1b9902781c..afc7a14a53 100755 --- a/scripts/build-front.sh +++ b/scripts/build-front.sh @@ -14,7 +14,7 @@ sed -i 's|"homepage".*|"homepage": "/static",|g' package.json sed -i 's|loadPath.*|loadPath: `/static/locales/{{lng}}/{{ns}}.json?v=${version}`,|g' src/i18n.js fi -npm run build +./node_modules/.bin/cross-env GENERATE_SOURCEMAP=false npm run build if [[ "$OSTYPE" == "darwin"* ]]; then sed -i '' 's|"homepage".*|"homepage": "/",|g' package.json diff --git a/scripts/rollback.sh b/scripts/rollback.sh index d43d564ccd..ce062bad5b 100755 --- a/scripts/rollback.sh +++ b/scripts/rollback.sh @@ -4,5 +4,5 @@ CURDIR=$(cd `dirname $0` && pwd) BASEDIR=`dirname $CURDIR` cd $BASEDIR -alembic downgrade f5aed532a99c +alembic downgrade ef72a8a1c9cf cd - diff --git a/scripts/update_version.sh b/scripts/update_version.sh index 811377e972..74308ca54b 100755 --- a/scripts/update_version.sh +++ b/scripts/update_version.sh @@ -11,4 +11,3 @@ sed -i "s/version=.*/version=\"$VERSION\",/g" setup.py sed -i "s/sonar.projectVersion=.*/sonar.projectVersion=$VERSION/g" sonar-project.properties sed -i "s/__version__ =.*/__version__ = \"$VERSION\"/g" antarest/__init__.py sed -i "s/\"version\":.*/\"version\": \"$VERSION\",/g" webapp/package.json -sed -i "s/\"version\":.*/\"version\": \"$VERSION\",/g" webapp_v2/package.json \ No newline at end of file diff --git a/setup.py b/setup.py index a815e4ebb2..5181011580 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="AntaREST", - version="2.3.2", + version="2.4.0", description="Antares Server", long_description=long_description, long_description_content_type="text/markdown", diff --git a/sonar-project.properties b/sonar-project.properties index 18a5842879..d9499f08c4 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -4,4 +4,4 @@ sonar.sources=antarest sonar.language=python sonar.exclusions=antarest/gui.py,antarest/main.py sonar.python.coverage.reportPaths=coverage.xml -sonar.projectVersion=2.3.2 \ No newline at end of file +sonar.projectVersion=2.4.0 \ No newline at end of file diff --git a/tests/conftest.py b/tests/conftest.py index e8219f0785..4bb4e04dec 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,10 +1,15 @@ import sys +from functools import wraps from pathlib import Path from typing import Any +from unittest.mock import Mock import pytest +from sqlalchemy import create_engine from antarest.core.model import SUB_JSON +from antarest.core.utils.fastapi_sqlalchemy import DBSessionMiddleware +from antarest.dbmodel import Base project_dir: Path = Path(__file__).parent.parent sys.path.insert(0, str(project_dir)) @@ -15,6 +20,21 @@ def project_path() -> Path: return project_dir +def with_db_context(f): + @wraps(f) + def wrapper(*args, **kwds): + engine = create_engine("sqlite:///:memory:", echo=True) + Base.metadata.create_all(engine) + DBSessionMiddleware( + Mock(), + custom_engine=engine, + session_args={"autocommit": False, "autoflush": False}, + ) + return f(*args, **kwds) + + return wrapper + + def _assert_dict(a: dict, b: dict) -> None: if a.keys() != b.keys(): raise AssertionError( diff --git a/tests/core/test_utils.py b/tests/core/test_utils.py index 89bd3008c8..8843c9ca96 100644 --- a/tests/core/test_utils.py +++ b/tests/core/test_utils.py @@ -1,7 +1,9 @@ +from pathlib import Path + import pytest from antarest.core.exceptions import ShouldNotHappenException -from antarest.core.utils.utils import retry +from antarest.core.utils.utils import retry, concat_files def test_retry(): @@ -10,3 +12,15 @@ def func_failure() -> str: with pytest.raises(ShouldNotHappenException): retry(func_failure, 2) + + +def test_concat_files(tmp_path: Path): + f1 = tmp_path / "f1.txt" + f2 = tmp_path / "f2.txt" + f3 = tmp_path / "f3.txt" + f_target = tmp_path / "f_target.txt" + f1.write_text("hello") + f2.write_text(" world !\n") + f3.write_text("Done.") + concat_files([f1, f2, f3], f_target) + assert f_target.read_text(encoding="utf-8") == "hello world !\nDone." diff --git a/tests/integration/test_integration.py b/tests/integration/test_integration.py index 5e625ed609..e8d720be8b 100644 --- a/tests/integration/test_integration.py +++ b/tests/integration/test_integration.py @@ -1,6 +1,6 @@ import time -from typing import Callable from pathlib import Path +from typing import Callable from unittest.mock import ANY from fastapi import FastAPI @@ -129,6 +129,15 @@ def test_main(app: FastAPI): study_id = next(iter(res.json())) comments = "Hello" + res = client.get( + f"/v1/studies/{study_id}/outputs", + headers={ + "Authorization": f'Bearer {george_credentials["access_token"]}' + }, + ) + res_output = res.json() + assert len(res_output) == 4 + # Set new comments res = client.put( f"/v1/studies/{study_id}/comments", @@ -205,6 +214,14 @@ def test_main(app: FastAPI): ) assert len(res.json()) == 3 + res = client.post( + "/v1/studies/_initialize_additional_data_in_db", + headers={ + "Authorization": f'Bearer {admin_credentials["access_token"]}' + }, + ) + assert res.json() == [] + # Study delete client.delete( f"/v1/studies/{copied.json()}", @@ -324,7 +341,12 @@ def test_main(app: FastAPI): headers={ "Authorization": f'Bearer {fred_credentials["access_token"]}' }, - json={"name": "STA-mini-copy", "status": "copied", "horizon": "2035"}, + json={ + "name": "STA-mini-copy", + "status": "copied", + "horizon": "2035", + "author": "Luffy", + }, ) new_meta = client.get( f"/v1/studies/{study_id}", @@ -568,18 +590,38 @@ def test_area_management(app: FastAPI): ) assert res.status_code == 200 res_ui = client.get( - f"/v1/studies/{study_id}/raw?path=input/areas/area%201/ui/ui", + f"/v1/studies/{study_id}/areas?ui=true", headers={ "Authorization": f'Bearer {admin_credentials["access_token"]}' }, ) assert res_ui.json() == { - "x": 100, - "y": 100, - "color_r": 255, - "color_g": 0, - "color_b": 100, - "layers": 0, + "area 1": { + "ui": { + "x": 100, + "y": 100, + "color_r": 255, + "color_g": 0, + "color_b": 100, + "layers": 0, + }, + "layerX": {"O": 0}, + "layerY": {"O": 0}, + "layerColor": {"O": "230 , 108 , 44"}, + }, + "area 2": { + "ui": { + "x": 0, + "y": 0, + "color_r": 230, + "color_g": 108, + "color_b": 44, + "layers": 0, + }, + "layerX": {"O": 0}, + "layerY": {"O": 0}, + "layerColor": {"O": "230 , 108 , 44"}, + }, } client.delete( diff --git a/tests/launcher/test_extension_adequacy_patch.py b/tests/launcher/test_extension_adequacy_patch.py index ec8e3eed84..89dc9addad 100644 --- a/tests/launcher/test_extension_adequacy_patch.py +++ b/tests/launcher/test_extension_adequacy_patch.py @@ -3,27 +3,37 @@ import pytest +from antarest.core.config import Config, StorageConfig from antarest.launcher.extensions.adequacy_patch.extension import ( AdequacyPatchExtension, ) +from tests.conftest import with_db_context +@with_db_context def test_hooks(tmp_path: Path): - storage_service = Mock() - adq_ext = AdequacyPatchExtension(storage_service) + study_service = Mock() + adq_ext = AdequacyPatchExtension( + study_service, Config(storage=StorageConfig(tmp_dir=tmp_path)) + ) assert adq_ext.get_name() == AdequacyPatchExtension.EXTENSION_NAME study_export_path = tmp_path / "study" study_export_path.mkdir() + (study_export_path / "user" / "adequacypatch").mkdir(parents=True) study_tree = Mock() study_config = Mock() - storage_service.raw_study_service.study_factory.create_from_fs.return_value = ( - study_config, - study_tree, + filestudy = Mock() + filestudy.tree = study_tree + filestudy.config = study_config + study_service.storage_service.raw_study_service.study_factory.create_from_fs.return_value = ( + filestudy ) study_tree.get.side_effect = [{}, {"flowbased": {}}, '{"areas": []}'] + study_config.areas = {} + study_config.study_path = study_export_path with pytest.raises(AssertionError): adq_ext.after_export_flat_hook( @@ -34,3 +44,6 @@ def test_hooks(tmp_path: Path): "some-job", "some-study-id", study_export_path, {} ) assert (study_export_path / "post-processing.R").exists() + assert ( + study_export_path / "user" / "adequacypatch" / "hourly-areas.yml" + ).exists() diff --git a/tests/launcher/test_service.py b/tests/launcher/test_service.py index 17f9927cf2..43e602c21d 100644 --- a/tests/launcher/test_service.py +++ b/tests/launcher/test_service.py @@ -368,14 +368,14 @@ def test_service_get_versions(config_local, config_slurm, expected_output): @pytest.mark.unit_test -def test_service_kill_job(): +def test_service_kill_job(tmp_path: Path): study_service = Mock() study_service.get_study.return_value = Mock( spec=Study, groups=[], owner=None, public_mode=PublicMode.NONE ) launcher_service = LauncherService( - config=Mock(), + config=Config(storage=StorageConfig(tmp_dir=tmp_path)), study_service=study_service, job_result_repository=Mock(), event_bus=Mock(), @@ -407,14 +407,14 @@ def test_service_kill_job(): ) -def test_append_logs(): +def test_append_logs(tmp_path: Path): study_service = Mock() study_service.get_study.return_value = Mock( spec=Study, groups=[], owner=None, public_mode=PublicMode.NONE ) launcher_service = LauncherService( - config=Mock(), + config=Config(storage=StorageConfig(tmp_dir=tmp_path)), study_service=study_service, job_result_repository=Mock(), event_bus=Mock(), @@ -448,14 +448,14 @@ def test_append_logs(): assert job_result_mock.logs[0].log_type == str(JobLogType.BEFORE) -def test_get_logs(): +def test_get_logs(tmp_path: Path): study_service = Mock() study_service.get_study.return_value = Mock( spec=Study, groups=[], owner=None, public_mode=PublicMode.NONE ) launcher_service = LauncherService( - config=Mock(), + config=Config(storage=StorageConfig(tmp_dir=tmp_path)), study_service=study_service, job_result_repository=Mock(), event_bus=Mock(), @@ -590,7 +590,7 @@ def test_manage_output(tmp_path: Path): assert ( launcher_service._import_output( - job_id, output_path, {"out.log": additional_log} + job_id, output_path, {"out.log": [additional_log]} ) is None ) @@ -599,7 +599,7 @@ def test_manage_output(tmp_path: Path): f"[general]\nmode=eco\nname=foo\ntimestamp={time.time()}" ) output_name = launcher_service._import_output( - job_id, output_path, {"out.log": additional_log} + job_id, output_path, {"out.log": [additional_log]} ) assert output_name is not None assert launcher_service._get_job_output_fallback_path(job_id).exists() diff --git a/tests/launcher/test_slurm_launcher.py b/tests/launcher/test_slurm_launcher.py index a06c086ce4..af7cf65ff2 100644 --- a/tests/launcher/test_slurm_launcher.py +++ b/tests/launcher/test_slurm_launcher.py @@ -410,8 +410,8 @@ def test_import_study_output(launcher_config, tmp_path): / "1" / "output", { - "antares-out.log": log_info, - "antares-err.log": log_error, + "antares-out.log": [log_info], + "antares-err.log": [log_error], }, ) diff --git a/tests/login/test_service.py b/tests/login/test_service.py index bf9cfcb386..69b3a441f9 100644 --- a/tests/login/test_service.py +++ b/tests/login/test_service.py @@ -524,7 +524,7 @@ def test_authentication_ldap_user(): def test_get_all_groups(): - group = Group(id="my-group") + group = Group(id="my-group", name="my-group") groups = Mock() groups.get_all.return_value = [group] diff --git a/tests/login/test_web.py b/tests/login/test_web.py index eb85b9324e..512d94b74b 100644 --- a/tests/login/test_web.py +++ b/tests/login/test_web.py @@ -26,6 +26,8 @@ IdentityDTO, BotRoleCreateDTO, RoleDetailDTO, + UserInfo, + GroupDTO, ) from antarest.main import JwtSettings @@ -181,7 +183,7 @@ def test_refresh() -> None: @pytest.mark.unit_test def test_user() -> None: service = Mock() - service.get_all_users.return_value = [User(id=1, name="user")] + service.get_all_users.return_value = [UserInfo(id=1, name="user")] app = create_app(service) client = TestClient(app) @@ -272,7 +274,9 @@ def test_user_delete() -> None: @pytest.mark.unit_test def test_group() -> None: service = Mock() - service.get_all_groups.return_value = [Group(id="my-group", name="group")] + service.get_all_groups.return_value = [ + GroupDTO(id="my-group", name="group") + ] app = create_app(service) client = TestClient(app) diff --git a/tests/matrixstore/test_matrix_garbage_collector.py b/tests/matrixstore/test_matrix_garbage_collector.py index fc5eae4d1c..dff99d0dc3 100644 --- a/tests/matrixstore/test_matrix_garbage_collector.py +++ b/tests/matrixstore/test_matrix_garbage_collector.py @@ -13,6 +13,7 @@ from antarest.matrixstore.model import MatrixDataSet, MatrixDataSetRelation from antarest.matrixstore.repository import MatrixDataSetRepository from antarest.matrixstore.service import MatrixService +from antarest.study.storage.patch_service import PatchService from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( GeneratorMatrixConstants, ) @@ -46,6 +47,7 @@ def matrix_garbage_collector(tmp_path: Path): command_factory = CommandFactory( generator_matrix_constants=Mock(spec=GeneratorMatrixConstants), matrix_service=Mock(spec=MatrixService), + patch_service=Mock(spec=PatchService), ) study_service = Mock() study_service.storage_service.variant_study_service.command_factory = ( diff --git a/tests/storage/business/test_arealink_manager.py b/tests/storage/business/test_arealink_manager.py index 999600b6a6..38d6b75e1d 100644 --- a/tests/storage/business/test_arealink_manager.py +++ b/tests/storage/business/test_arealink_manager.py @@ -13,14 +13,21 @@ ISimpleMatrixService, SimpleMatrixService, ) -from antarest.study.business.link_management import LinkManager, LinkInfoDTO -from antarest.study.model import RawStudy, Patch, PatchArea, PatchCluster from antarest.study.business.area_management import ( AreaManager, AreaType, AreaCreationDTO, AreaUI, ) +from antarest.study.business.link_management import LinkManager, LinkInfoDTO +from antarest.study.model import ( + RawStudy, + Patch, + PatchArea, + PatchCluster, + StudyAdditionalData, +) +from antarest.study.repository import StudyMetadataRepository from antarest.study.storage.patch_service import PatchService from antarest.study.storage.rawstudy.model.filesystem.config.files import ( ConfigPathBuilder, @@ -81,17 +88,24 @@ def test_area_crud( storage_service=StudyStorageService( raw_study_service, variant_study_service ), + repository=Mock(spec=StudyMetadataRepository), ) link_manager = LinkManager( storage_service=StudyStorageService( raw_study_service, variant_study_service ) ) - study = RawStudy(id="1", path=empty_study.config.study_path) + study = RawStudy( + id="1", + path=empty_study.config.study_path, + additional_data=StudyAdditionalData(), + ) raw_study_service.get_raw.return_value = empty_study raw_study_service.cache = Mock() variant_study_service.command_factory = CommandFactory( - GeneratorMatrixConstants(matrix_service), matrix_service + GeneratorMatrixConstants(matrix_service), + matrix_service, + patch_service=Mock(spec=PatchService), ) assert len(empty_study.config.areas.keys()) == 0 @@ -130,7 +144,11 @@ def test_area_crud( area_manager.delete_area(study, "test2") assert len(empty_study.config.areas.keys()) == 0 - study = VariantStudy(id="2", path=empty_study.config.study_path) + study = VariantStudy( + id="2", + path=empty_study.config.study_path, + additional_data=StudyAdditionalData(), + ) variant_study_service.get_raw.return_value = empty_study area_manager.create_area( study, @@ -226,7 +244,8 @@ def test_area_crud( def test_get_all_area(): raw_study_service = Mock(spec=RawStudyService) area_manager = AreaManager( - storage_service=StudyStorageService(raw_study_service, Mock()) + storage_service=StudyStorageService(raw_study_service, Mock()), + repository=Mock(spec=StudyMetadataRepository), ) link_manager = LinkManager( storage_service=StudyStorageService(raw_study_service, Mock()) @@ -411,7 +430,8 @@ def test_get_all_area(): def test_update_area(): raw_study_service = Mock(spec=RawStudyService) area_manager = AreaManager( - storage_service=StudyStorageService(raw_study_service, Mock()) + storage_service=StudyStorageService(raw_study_service, Mock()), + repository=Mock(spec=StudyMetadataRepository), ) study = RawStudy() @@ -459,7 +479,8 @@ def test_update_area(): def test_update_clusters(): raw_study_service = Mock(spec=RawStudyService) area_manager = AreaManager( - storage_service=StudyStorageService(raw_study_service, Mock()) + storage_service=StudyStorageService(raw_study_service, Mock()), + repository=Mock(spec=StudyMetadataRepository), ) study = RawStudy() diff --git a/tests/storage/business/test_export.py b/tests/storage/business/test_export.py index 674f30d789..41ec3ec845 100644 --- a/tests/storage/business/test_export.py +++ b/tests/storage/business/test_export.py @@ -59,7 +59,7 @@ def test_export_file(tmp_path: Path, outputs: bool): study = RawStudy(id="Yo", path=root) study_tree = Mock() - study_factory.create_from_fs.return_value = (None, study_tree) + study_factory.create_from_fs.return_value = study_tree study_service.export_study(study, export_path, outputs) zipf = ZipFile(export_path) @@ -104,7 +104,7 @@ def test_export_flat(tmp_path: Path): cache=Mock(), ) study_tree = Mock() - study_factory.create_from_fs.return_value = (None, study_tree) + study_factory.create_from_fs.return_value = study_tree study = RawStudy(id="id", path=root) @@ -149,7 +149,7 @@ def test_export_output(tmp_path: Path): study = RawStudy(id="Yo", path=root) study_tree = Mock() - study_factory.create_from_fs.return_value = (None, study_tree) + study_factory.create_from_fs.return_value = study_tree study_service.export_output(study, output_id, export_path) zipf = ZipFile(f"{export_path}.zip") diff --git a/tests/storage/business/test_import.py b/tests/storage/business/test_import.py index f5a884ddc6..d217d43474 100644 --- a/tests/storage/business/test_import.py +++ b/tests/storage/business/test_import.py @@ -10,7 +10,12 @@ BadZipBinary, StudyValidationError, ) -from antarest.study.model import DEFAULT_WORKSPACE_NAME, RawStudy +from antarest.study.model import ( + DEFAULT_WORKSPACE_NAME, + RawStudy, + StudyAdditionalData, +) +from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.rawstudy.raw_study_service import ( RawStudyService, ) @@ -37,7 +42,7 @@ def test_import_study(tmp_path: Path) -> None: study = Mock() study.get.return_value = data study_factory = Mock() - study_factory.create_from_fs.return_value = None, study + study_factory.create_from_fs.return_value = FileStudy(Mock(), study) study_service = RawStudyService( config=Mock(), @@ -62,6 +67,7 @@ def test_import_study(tmp_path: Path) -> None: id="other-study", workspace=DEFAULT_WORKSPACE_NAME, path=tmp_path / "other-study", + additional_data=StudyAdditionalData(), ) with path_zip.open("rb") as input_file: md = study_service.import_study(md, input_file) diff --git a/tests/storage/business/test_patch_service.py b/tests/storage/business/test_patch_service.py index d894ffbf48..6f1b7087dc 100644 --- a/tests/storage/business/test_patch_service.py +++ b/tests/storage/business/test_patch_service.py @@ -10,6 +10,7 @@ PatchArea, PatchOutputs, ) +from antarest.study.repository import StudyMetadataRepository from antarest.study.storage.patch_service import PatchService PATCH_CONTENT = """ @@ -48,7 +49,7 @@ def test_get(tmp_path: str): outputs=PatchOutputs(reference="20210588-eco-1532"), ) - patch_service = PatchService() + patch_service = PatchService(repository=Mock(spec=StudyMetadataRepository)) patch = patch_service.get(raw_study) assert patch == expected_patch @@ -65,7 +66,7 @@ def test_save(tmp_path: str): raw_study = Mock() raw_study.path = tmp_path - patch_service = PatchService() + patch_service = PatchService(repository=Mock(spec=StudyMetadataRepository)) patch_service.save(raw_study, patch) assert (Path(tmp_path) / "patch.json").read_text() == expected_json @@ -82,7 +83,7 @@ def test_set_output_ref(tmp_path: str): raw_study = Mock() raw_study_patch = Patch(outputs=PatchOutputs(reference="some id")) - patch_service = PatchService() + patch_service = PatchService(repository=Mock(spec=StudyMetadataRepository)) patch_service.get = Mock(return_value=raw_study_patch) patch_service.save = Mock() diff --git a/tests/storage/business/test_raw_study_service.py b/tests/storage/business/test_raw_study_service.py index a22b730283..7375fc143e 100644 --- a/tests/storage/business/test_raw_study_service.py +++ b/tests/storage/business/test_raw_study_service.py @@ -13,7 +13,12 @@ StudyDeletionNotAllowed, ) from antarest.core.interfaces.cache import CacheConstants -from antarest.study.model import DEFAULT_WORKSPACE_NAME, RawStudy +from antarest.study.model import ( + DEFAULT_WORKSPACE_NAME, + RawStudy, + StudyAdditionalData, +) +from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.rawstudy.raw_study_service import ( RawStudyService, ) @@ -61,7 +66,7 @@ def test_get(tmp_path: str, project_path) -> None: study = Mock() study.get.return_value = data study_factory = Mock() - study_factory.create_from_fs.return_value = (None, study) + study_factory.create_from_fs.return_value = FileStudy(Mock(), study) study_service = RawStudyService( config=build_config(path_to_studies), @@ -83,7 +88,6 @@ def test_get(tmp_path: str, project_path) -> None: @pytest.mark.unit_test def test_get_cache(tmp_path: str) -> None: - # Create folders path_to_studies = Path(tmp_path) (path_to_studies / "study1").mkdir() @@ -99,7 +103,7 @@ def test_get_cache(tmp_path: str) -> None: study.get.return_value = data study_factory = Mock() - study_factory.create_from_fs.return_value = (None, study) + study_factory.create_from_fs.return_value = FileStudy(Mock(), study) cache = Mock() cache.get.return_value = None @@ -131,7 +135,7 @@ def test_check_errors(): study.check_errors.return_value = ["Hello"] factory = Mock() - factory.create_from_fs.return_value = None, study + factory.create_from_fs.return_value = FileStudy(Mock(), study) config = build_config(Path()) study_service = RawStudyService( config=config, @@ -216,7 +220,7 @@ def test_create_study(tmp_path: str, project_path) -> None: study.get.return_value = data study_factory = Mock() - study_factory.create_from_fs.return_value = (None, study) + study_factory.create_from_fs.return_value = FileStudy(Mock(), study) config = build_config(path_studies) study_service = RawStudyService( config=config, @@ -253,7 +257,7 @@ def test_create_study_versions(tmp_path: str, project_path) -> None: study.get.return_value = data study_factory = Mock() - study_factory.create_from_fs.return_value = (None, study) + study_factory.create_from_fs.return_value = FileStudy(Mock(), study) config = build_config(path_studies) study_service = RawStudyService( config=config, @@ -402,7 +406,7 @@ def test_copy_study( study_factory = Mock() config = Mock() - study_factory.create_from_fs.return_value = config, study + study_factory.create_from_fs.return_value = FileStudy(config, study) study_factory.create_from_config.return_value = study url_engine = Mock() @@ -417,7 +421,10 @@ def test_copy_study( ) src_md = RawStudy( - id=source_name, workspace=DEFAULT_WORKSPACE_NAME, path=str(path_study) + id=source_name, + workspace=DEFAULT_WORKSPACE_NAME, + path=str(path_study), + additional_data=StudyAdditionalData(), ) md = study_service.copy(src_md, "dest_name") md_id = md.id @@ -467,3 +474,108 @@ def test_delete_study(tmp_path: Path) -> None: ] ) assert not study_path.exists() + + +@pytest.mark.unit_test +def test_initialize_additional_data(tmp_path: Path) -> None: + name = "my-study" + study_path = tmp_path / name + study_path.mkdir() + (study_path / "study.antares").touch() + + study_additional_data = StudyAdditionalData( + horizon=10, author="foo", patch="bar" + ) + + cache = Mock() + + raw_study = RawStudy(id=name, workspace="foo", path=str(study_path)) + study_factory = Mock() + study_factory.create_from_fs.return_value = FileStudy(Mock(), raw_study) + + study_service = RawStudyService( + config=build_config(tmp_path, workspace_name="foo"), + cache=cache, + study_factory=study_factory, + path_resources=Path(), + patch_service=Mock(), + ) + + assert not study_service.initialize_additional_data(raw_study) + + study_service._read_additional_data_from_files = Mock( + return_value=study_additional_data + ) + assert study_service.initialize_additional_data(raw_study) + + +@pytest.mark.unit_test +def test_check_and_update_study_version_in_database(tmp_path: Path) -> None: + name = "my-study" + study_path = tmp_path / name + study_path.mkdir() + study_antares = study_path / "study.antares" + study_antares.touch() + + raw_study = RawStudy( + id=name, workspace="foo", path=str(study_path), version="100" + ) + + file_study_tree = Mock() + file_study_tree.get.return_value = {"version": 100} + + study_factory = Mock() + study_factory.create_from_config.return_value = file_study_tree + + study_service = RawStudyService( + config=build_config(tmp_path, workspace_name="foo"), + cache=Mock(), + study_factory=study_factory, + path_resources=Path(), + patch_service=Mock(), + ) + + study_service.check_and_update_study_version_in_database(raw_study) + + assert raw_study.version == "100" + + raw_study = RawStudy( + id=name, workspace="foo", path=str(study_path), version="100" + ) + + file_study_tree = Mock() + file_study_tree.get.return_value = {"version": 42} + + study_factory = Mock() + study_factory.create_from_config.return_value = file_study_tree + + study_service = RawStudyService( + config=build_config(tmp_path, workspace_name="foo"), + cache=Mock(), + study_factory=study_factory, + path_resources=Path(), + patch_service=Mock(), + ) + + study_service.check_and_update_study_version_in_database(raw_study) + + assert raw_study.version == "42" + + raw_study = RawStudy( + id=name, workspace="foo", path=str(study_path), version="100" + ) + + study_factory = Mock() + study_factory.create_from_config.side_effect = FileNotFoundError() + + study_service = RawStudyService( + config=build_config(tmp_path, workspace_name="foo"), + cache=Mock(), + study_factory=study_factory, + path_resources=Path(), + patch_service=Mock(), + ) + + study_service.check_and_update_study_version_in_database(raw_study) + + assert raw_study.version == "100" diff --git a/tests/storage/business/test_study_service_utils.py b/tests/storage/business/test_study_service_utils.py index b97d885f3d..f343f64f11 100644 --- a/tests/storage/business/test_study_service_utils.py +++ b/tests/storage/business/test_study_service_utils.py @@ -227,5 +227,5 @@ def test_create_matrix_index( config: Dict[str, Any], level: StudyDownloadLevelDTO, expected: MatrixIndex ): file_study = Mock() - file_study.tree.get.return_value = config + file_study.tree.get.return_value = {"general": config} assert get_start_date(file_study, "some output", level) == expected diff --git a/tests/storage/business/test_variant_study_service.py b/tests/storage/business/test_variant_study_service.py index 59b1b70b66..3339ca3afd 100644 --- a/tests/storage/business/test_variant_study_service.py +++ b/tests/storage/business/test_variant_study_service.py @@ -1,5 +1,3 @@ -import time -from datetime import datetime from pathlib import Path from unittest.mock import Mock @@ -16,7 +14,8 @@ from antarest.core.requests import RequestParameters from antarest.core.tasks.model import TaskDTO, TaskStatus, TaskResult from antarest.login.model import User -from antarest.study.model import DEFAULT_WORKSPACE_NAME +from antarest.study.model import DEFAULT_WORKSPACE_NAME, StudyAdditionalData +from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.variantstudy.model.dbmodel import ( VariantStudy, CommandBlock, @@ -67,7 +66,7 @@ def test_get(tmp_path: str, project_path) -> None: study = Mock() study.get.return_value = data study_factory = Mock() - study_factory.create_from_fs.return_value = (None, study) + study_factory.create_from_fs.return_value = FileStudy(Mock(), study) study_service = VariantStudyService( raw_study_service=Mock(), @@ -142,7 +141,7 @@ def test_get_cache(tmp_path: str) -> None: study.get.return_value = data study_factory = Mock() - study_factory.create_from_fs.return_value = (None, study) + study_factory.create_from_fs.return_value = FileStudy(Mock(), study) cache = Mock() cache.get.return_value = None @@ -267,7 +266,12 @@ def test_copy_study() -> None: version=7, ) ] - src_md = VariantStudy(id=src_id, path="path", commands=commands) + src_md = VariantStudy( + id=src_id, + path="path", + commands=commands, + additional_data=StudyAdditionalData(), + ) md = study_service.copy(src_md, "dest_name") assert len(src_md.commands) == len(md.commands) @@ -337,6 +341,7 @@ def test_get_variant_children(tmp_path: Path) -> None: owner=User(id=2, name="me"), groups=[], public_mode=PublicMode.NONE, + additional_data=StudyAdditionalData(), ) children = [ VariantStudy( @@ -349,6 +354,7 @@ def test_get_variant_children(tmp_path: Path) -> None: owner=User(id=2, name="me"), groups=[], public_mode=PublicMode.NONE, + additional_data=StudyAdditionalData(), ), VariantStudy( id="child2", @@ -360,6 +366,7 @@ def test_get_variant_children(tmp_path: Path) -> None: owner=User(id=3, name="not me"), groups=[], public_mode=PublicMode.NONE, + additional_data=StudyAdditionalData(), ), ] repo_mock.get.side_effect = [parent] + children @@ -370,3 +377,51 @@ def test_get_variant_children(tmp_path: Path) -> None: RequestParameters(user=JWTUser(id=2, type="user", impersonator=2)), ) assert len(tree.children) == 1 + + +@pytest.mark.unit_test +def test_initialize_additional_data(tmp_path: Path) -> None: + name = "my-study" + study_path = tmp_path / name + study_path.mkdir() + (study_path / "study.antares").touch() + + md = VariantStudy(id=name, path=str(study_path)) + + additional_data = StudyAdditionalData( + horizon=2050, patch="{}", author="Zoro" + ) + + study_factory = Mock() + study_factory.create_from_fs.return_value = md + + variant_study_service = VariantStudyService( + raw_study_service=Mock(), + cache=Mock(), + task_service=Mock(), + command_factory=Mock(), + study_factory=study_factory, + config=build_config(tmp_path), + repository=Mock(spec=VariantStudyRepository), + event_bus=Mock(), + patch_service=Mock(), + ) + + variant_study_service._read_additional_data_from_files = Mock( + return_value=additional_data + ) + + variant_study_service.exists = Mock(return_value=False) + + assert variant_study_service.initialize_additional_data(md) + assert md.additional_data == StudyAdditionalData() + + variant_study_service.exists = Mock(return_value=True) + assert variant_study_service.initialize_additional_data(md) + assert md.additional_data == additional_data + + variant_study_service._read_additional_data_from_files.side_effect = ( + FileNotFoundError() + ) + + assert not variant_study_service.initialize_additional_data(md) diff --git a/tests/storage/business/test_xpansion_manager.py b/tests/storage/business/test_xpansion_manager.py index 48218bbbc2..8f70dbadaf 100644 --- a/tests/storage/business/test_xpansion_manager.py +++ b/tests/storage/business/test_xpansion_manager.py @@ -103,7 +103,7 @@ def make_link_and_areas(empty_study): "uc_type": "expansion_fast", "master": "integer", "relaxed-optimality-gap": 1e6, - "cut-type": "average", + "cut-type": "yearly", "ampl.solver": "cbc", "ampl.presolve": 0, "ampl.solve_bounds_frequency": 1000000, @@ -189,7 +189,7 @@ def test_delete_xpansion_configuration(tmp_path: Path): "yearly_weight": None, "additional-constraints": None, "relaxed-optimality-gap": 1000000.0, - "cut-type": "average", + "cut-type": "yearly", "ampl.solver": "cbc", "ampl.presolve": 0, "ampl.solve_bounds_frequency": 1000000, diff --git a/tests/storage/integration/conftest.py b/tests/storage/integration/conftest.py index cb87de79bb..de96da5f69 100644 --- a/tests/storage/integration/conftest.py +++ b/tests/storage/integration/conftest.py @@ -14,14 +14,17 @@ WorkspaceConfig, CacheConfig, ) -from antarest.core.filetransfer.service import FileTransferManager from antarest.core.tasks.service import ITaskService from antarest.core.utils.fastapi_sqlalchemy import DBSessionMiddleware from antarest.dbmodel import Base from antarest.login.model import User -from antarest.matrixstore.service import MatrixService, SimpleMatrixService +from antarest.matrixstore.service import SimpleMatrixService from antarest.study.main import build_study_service -from antarest.study.model import DEFAULT_WORKSPACE_NAME, RawStudy +from antarest.study.model import ( + DEFAULT_WORKSPACE_NAME, + RawStudy, + StudyAdditionalData, +) from antarest.study.service import StudyService @@ -61,6 +64,9 @@ def storage_service( created_at=datetime.datetime.fromtimestamp(1480683452), updated_at=datetime.datetime.fromtimestamp(1602678639), version=700, + additional_data=StudyAdditionalData( + author="Andrea SGATTONI", horizon=2030 + ), ) repo = Mock() repo.get.side_effect = lambda name: RawStudy( @@ -71,6 +77,7 @@ def storage_service( created_at=datetime.datetime.fromtimestamp(1480683452), updated_at=datetime.datetime.fromtimestamp(1602678639), version=700, + additional_data=StudyAdditionalData(), ) repo.get_all.return_value = [md] diff --git a/tests/storage/rawstudies/factory.py b/tests/storage/rawstudies/factory.py index 7b4078260d..e36e502784 100644 --- a/tests/storage/rawstudies/factory.py +++ b/tests/storage/rawstudies/factory.py @@ -60,10 +60,10 @@ def test_factory_cache(): config = ConfigPathBuilder.build(path, study_id) cache.get.return_value = None - return_conf, _ = factory.create_from_fs(path, study_id) - assert return_conf == config + study = factory.create_from_fs(path, study_id) + assert study.config == config cache.put.assert_called_once_with(cache_id, config.dict()) cache.get.return_value = config.dict() - return_conf, _ = factory.create_from_fs(path, study_id) - assert return_conf == config + study = factory.create_from_fs(path, study_id) + assert study.config == config diff --git a/tests/storage/rawstudies/helpers.py b/tests/storage/rawstudies/helpers.py new file mode 100644 index 0000000000..9a1a97e32b --- /dev/null +++ b/tests/storage/rawstudies/helpers.py @@ -0,0 +1,106 @@ +from unittest.mock import Mock, call + +import pytest + +from antarest.study.storage.rawstudy.model.helpers import FileStudyHelpers + + +@pytest.mark.parametrize( + ["generaldata", "playlist"], + [ + ( + {"general": {"nbyears": 10, "user-playlist": False}}, + None, + ), + ( + {"general": {"nbyears": 10, "user-playlist": True}}, + list(range(1, 11)), + ), + ( + { + "general": {"nbyears": 10, "user-playlist": False}, + "playlist": { + "playlist_reset": False, + "playlist_year +": [1, 2], + }, + }, + None, + ), + ( + { + "general": {"nbyears": 10, "user-playlist": True}, + "playlist": { + "playlist_reset": False, + "playlist_year +": [1, 2], + }, + }, + [2, 3], + ), + ( + { + "general": {"nbyears": 10, "user-playlist": True}, + "playlist": { + "playlist_reset": True, + "playlist_year -": [1, 2], + }, + }, + [1, 4, 5, 6, 7, 8, 9, 10], + ), + ], +) +def test_get_playlist(generaldata, playlist): + study = Mock() + study.tree.get.return_value = generaldata + assert FileStudyHelpers.get_playlist(study) == playlist + + +def test_set_playlist(): + study = Mock() + study.tree.get.side_effect = [ + { + "general": {"nbyears": 10, "user-playlist": True}, + "playlist": {"playlist_reset": True, "playlist_year -": [1, 2]}, + }, + { + "general": {"nbyears": 10, "user-playlist": True}, + "playlist": {"playlist_reset": True, "playlist_year -": [1, 2]}, + }, + {"general": {"nbyears": 10, "user-playlist": False}}, + ] + FileStudyHelpers.set_playlist(study, [2, 4]) + FileStudyHelpers.set_playlist(study, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + FileStudyHelpers.set_playlist(study, [2, 3, 4, 7, 8, 9]) + study.tree.save.assert_has_calls( + [ + call( + { + "general": {"nbyears": 10, "user-playlist": True}, + "playlist": { + "playlist_reset": False, + "playlist_year +": [1, 3], + }, + }, + ["settings", "generaldata"], + ), + call( + { + "general": {"nbyears": 10, "user-playlist": False}, + "playlist": { + "playlist_reset": True, + "playlist_year -": [1, 2], + }, + }, + ["settings", "generaldata"], + ), + call( + { + "general": {"nbyears": 10, "user-playlist": True}, + "playlist": { + "playlist_reset": True, + "playlist_year -": [0, 4, 5, 9], + }, + }, + ["settings", "generaldata"], + ), + ] + ) diff --git a/tests/storage/repository/filesystem/config/test_config_files.py b/tests/storage/repository/filesystem/config/test_config_files.py index 835aafa5ee..8c4bcfe7e6 100644 --- a/tests/storage/repository/filesystem/config/test_config_files.py +++ b/tests/storage/repository/filesystem/config/test_config_files.py @@ -115,7 +115,7 @@ def test_parse_outputs(tmp_path: Path) -> None: synthesis=True, by_year=True, error=False, - playlist=[0], + playlist=[1], ) }, ) diff --git a/tests/storage/repository/filesystem/matrix/date_serializer_test.py b/tests/storage/repository/filesystem/matrix/date_serializer_test.py index 01a1007950..cf25c3a594 100644 --- a/tests/storage/repository/filesystem/matrix/date_serializer_test.py +++ b/tests/storage/repository/filesystem/matrix/date_serializer_test.py @@ -49,7 +49,7 @@ def test_build_hourly(tmp_path: Path): { 0: ["DE", "", "", "", ""], 1: ["hourly", "", "index", 1, 2], - 2: ["", "", "day", "1", "1"], + 2: ["", "", "day", "01", "01"], 3: ["", "", "month", "JAN", "JAN"], 4: ["", "", "hour", "00:00", "01:00"], } @@ -96,7 +96,7 @@ def test_build_daily(tmp_path: Path): { 0: ["DE", "", "", "", ""], 1: ["daily", "", "index", 1, 2], - 2: ["", "", "day", "1", "2"], + 2: ["", "", "day", "01", "02"], 3: ["", "", "month", "JAN", "JAN"], } ) diff --git a/tests/storage/repository/filesystem/matrix/head_writer_test.py b/tests/storage/repository/filesystem/matrix/head_writer_test.py index 023b324d64..4773848f39 100644 --- a/tests/storage/repository/filesystem/matrix/head_writer_test.py +++ b/tests/storage/repository/filesystem/matrix/head_writer_test.py @@ -5,10 +5,10 @@ def test_area(): - writer = AreaHeadWriter(area="de", freq="hourly") + writer = AreaHeadWriter(area="de", data_type="va", freq="hourly") assert ( writer.build(var=3, start=2, end=4) - == "DE\tarea\tde\thourly\n\tVARIABLES\tBEGIN\tEND\n\t3\t2\t4\n\n" + == "DE\tarea\tva\thourly\n\tVARIABLES\tBEGIN\tEND\n\t3\t2\t4\n\n" ) diff --git a/tests/storage/repository/filesystem/matrix/output_series_matrix_test.py b/tests/storage/repository/filesystem/matrix/output_series_matrix_test.py index beed3d9e00..cf4c521458 100644 --- a/tests/storage/repository/filesystem/matrix/output_series_matrix_test.py +++ b/tests/storage/repository/filesystem/matrix/output_series_matrix_test.py @@ -46,7 +46,7 @@ def test_get(tmp_path: Path): context=Mock(), config=config, date_serializer=serializer, - head_writer=AreaHeadWriter(area="", freq=""), + head_writer=AreaHeadWriter(area="", data_type="", freq=""), freq="", ) assert node.load() == matrix.to_dict(orient="split") @@ -73,7 +73,7 @@ def test_save(tmp_path: Path): context=Mock(), config=config, date_serializer=serializer, - head_writer=AreaHeadWriter(area="de", freq="hourly"), + head_writer=AreaHeadWriter(area="de", data_type="va", freq="hourly"), freq="", ) @@ -89,7 +89,7 @@ def test_save(tmp_path: Path): print(file.read_text()) assert ( file.read_text() - == """DE area de hourly + == """DE area va hourly VARIABLES BEGIN END 2 1 2 diff --git a/tests/storage/test_service.py b/tests/storage/test_service.py index 5f642a01a8..d06f4e0f9d 100644 --- a/tests/storage/test_service.py +++ b/tests/storage/test_service.py @@ -30,7 +30,6 @@ RawStudy, PublicMode, StudyDownloadDTO, - MatrixAggregationResult, MatrixIndex, StudyDownloadType, StudyMetadataDTO, @@ -40,6 +39,7 @@ MatrixAggregationResultDTO, TimeSerie, TimeSeriesData, + StudyAdditionalData, ) from antarest.study.repository import StudyMetadataRepository from antarest.study.service import ( @@ -103,8 +103,8 @@ def build_study_service( @pytest.mark.unit_test def test_get_studies_uuid() -> None: - bob = User(id=1, name="bob") - alice = User(id=2, name="alice") + bob = User(id=2, name="bob") + alice = User(id=3, name="alice") a = Study(id="A", owner=bob) b = Study(id="B", owner=alice) @@ -123,13 +123,13 @@ def test_get_studies_uuid() -> None: service = build_study_service(study_service, repository, config) studies = service._get_study_metadatas( - RequestParameters(user=JWTUser(id=1, impersonator=1, type="users")) + RequestParameters(user=JWTUser(id=2, impersonator=2, type="users")) ) assert [a, c] == studies -def study_to_dto(study: Study, summary: bool) -> StudyMetadataDTO: +def study_to_dto(study: Study) -> StudyMetadataDTO: return StudyMetadataDTO( id=study.id, name=study.name, @@ -147,7 +147,7 @@ def study_to_dto(study: Study, summary: bool) -> StudyMetadataDTO: GroupDTO(id=group.id, name=group.name) for group in study.groups ], public_mode=study.public_mode or PublicMode.NONE, - horizon=None, + horizon=study.additional_data.horizon, scenario=None, status=None, doc=None, @@ -157,8 +157,8 @@ def study_to_dto(study: Study, summary: bool) -> StudyMetadataDTO: @pytest.mark.unit_test def test_study_listing() -> None: - bob = User(id=1, name="bob") - alice = User(id=2, name="alice") + bob = User(id=2, name="bob") + alice = User(id=3, name="alice") a = RawStudy( id="A", @@ -170,6 +170,7 @@ def test_study_listing() -> None: updated_at=datetime.utcnow(), path="", workspace=DEFAULT_WORKSPACE_NAME, + additional_data=StudyAdditionalData(), ) b = RawStudy( id="B", @@ -181,6 +182,7 @@ def test_study_listing() -> None: updated_at=datetime.utcnow(), path="", workspace="other", + additional_data=StudyAdditionalData(), ) c = RawStudy( id="C", @@ -192,6 +194,7 @@ def test_study_listing() -> None: updated_at=datetime.utcnow(), path="", workspace="other2", + additional_data=StudyAdditionalData(), ) # Mock @@ -214,23 +217,23 @@ def test_study_listing() -> None: ) studies = service.get_studies_information( - True, - False, - RequestParameters(user=JWTUser(id=1, impersonator=1, type="users")), + managed=False, + params=RequestParameters( + user=JWTUser(id=2, impersonator=2, type="users") + ), ) - expected_result = { - e.id: e for e in map(lambda x: study_to_dto(x, True), [a, c]) - } + expected_result = {e.id: e for e in map(lambda x: study_to_dto(x), [a, c])} assert expected_result == studies cache.get.return_value = { - e.id: e for e in map(lambda x: study_to_dto(x, True), [a, b, c]) + e.id: e for e in map(lambda x: study_to_dto(x), [a, b, c]) } studies = service.get_studies_information( - True, - False, - RequestParameters(user=JWTUser(id=1, impersonator=1, type="users")), + managed=False, + params=RequestParameters( + user=JWTUser(id=2, impersonator=2, type="users") + ), ) assert expected_result == studies @@ -238,14 +241,13 @@ def test_study_listing() -> None: cache.get.return_value = None studies = service.get_studies_information( - True, - True, - RequestParameters(user=JWTUser(id=1, impersonator=1, type="users")), + managed=True, + params=RequestParameters( + user=JWTUser(id=2, impersonator=2, type="users") + ), ) - expected_result = { - e.id: e for e in map(lambda x: study_to_dto(x, True), [a]) - } + expected_result = {e.id: e for e in map(lambda x: study_to_dto(x), [a])} assert expected_result == studies @@ -590,12 +592,14 @@ def test_download_output() -> None: config=file_config, tree=study ) output_config = { - "first-month-in-year": "january", - "january.1st": "Monday", - "leapyear": False, - "first.weekday": "Monday", - "simulation.start": 1, - "simulation.end": 354, + "general": { + "first-month-in-year": "january", + "january.1st": "Monday", + "leapyear": False, + "first.weekday": "Monday", + "simulation.start": 1, + "simulation.end": 354, + } } study.get.side_effect = [ output_config, @@ -603,9 +607,6 @@ def test_download_output() -> None: res_study_details, output_config, res_study, - res_study_details, - output_config, - res_study, output_config, res_study, res_study_details, @@ -747,8 +748,8 @@ def test_download_output() -> None: @pytest.mark.unit_test def test_change_owner() -> None: uuid = str(uuid4()) - alice = User(id=1) - bob = User(id=2, name="Bob") + alice = User(id=2) + bob = User(id=3, name="Bob") mock_file_study = Mock() mock_file_study.tree.get_node.return_value = Mock(spec=IniFileNode) @@ -775,10 +776,10 @@ def test_change_owner() -> None: service._edit_study_using_command = Mock() service.change_owner( - uuid, 2, RequestParameters(JWTUser(id=1, impersonator=1, type="users")) + uuid, 2, RequestParameters(JWTUser(id=2, impersonator=2, type="users")) ) user_service.get_user.assert_called_once_with( - 2, RequestParameters(JWTUser(id=1, impersonator=1, type="users")) + 2, RequestParameters(JWTUser(id=2, impersonator=2, type="users")) ) repository.save.assert_called_once_with(RawStudy(id=uuid, owner=bob)) @@ -790,7 +791,7 @@ def test_change_owner() -> None: service.change_owner( uuid, 1, - RequestParameters(JWTUser(id=1, impersonator=1, type="users")), + RequestParameters(JWTUser(id=2, impersonator=2, type="users")), ) @@ -898,14 +899,14 @@ def test_set_public_mode() -> None: service.set_public_mode( uuid, PublicMode.FULL, - RequestParameters(JWTUser(id=1, impersonator=1, type="users")), + RequestParameters(JWTUser(id=2, impersonator=2, type="users")), ) service.set_public_mode( uuid, PublicMode.FULL, RequestParameters( - JWTUser(id=1, impersonator=1, type="users", groups=[group_admin]) + JWTUser(id=2, impersonator=2, type="users", groups=[group_admin]) ), ) repository.save.assert_called_once_with( diff --git a/tests/variantstudy/model/command/conftest.py b/tests/variantstudy/model/command/conftest.py index a077432ab1..b733fc3e4b 100644 --- a/tests/variantstudy/model/command/conftest.py +++ b/tests/variantstudy/model/command/conftest.py @@ -1,16 +1,15 @@ import zipfile -from datetime import datetime from pathlib import Path from unittest.mock import Mock import pytest from sqlalchemy import create_engine -from antarest.core.config import Config from antarest.core.utils.fastapi_sqlalchemy import DBSessionMiddleware from antarest.dbmodel import Base from antarest.matrixstore.service import MatrixService from antarest.study.common.uri_resolver_service import UriResolverService +from antarest.study.repository import StudyMetadataRepository from antarest.study.storage.patch_service import PatchService from antarest.study.storage.rawstudy.model.filesystem.config.model import ( FileStudyTreeConfig, @@ -25,15 +24,9 @@ from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( GeneratorMatrixConstants, ) -from antarest.study.storage.variantstudy.model.command.utils_extractor import ( - CommandExtraction, -) from antarest.study.storage.variantstudy.model.command_context import ( CommandContext, ) -from antarest.study.storage.variantstudy.model.interfaces import ( - ICommandExtractor, -) @pytest.fixture @@ -56,26 +49,15 @@ def matrix_service() -> MatrixService: @pytest.fixture def command_context(matrix_service: MatrixService) -> CommandContext: - command_extractor = Mock(spec=CommandExtraction) - command_extractor.generate_update_comments.side_effect = ( - lambda x: CommandExtraction.generate_update_comments( - command_extractor, x - ) - ) - command_extractor.generate_update_rawfile.side_effect = ( - lambda x, u: CommandExtraction.generate_update_rawfile( - command_extractor, x, u - ) - ) command_context = CommandContext( generator_matrix_constants=GeneratorMatrixConstants( matrix_service=matrix_service ), matrix_service=matrix_service, - patch_service=PatchService(), - command_extractor=command_extractor, + patch_service=PatchService( + repository=Mock(spec=StudyMetadataRepository) + ), ) - command_extractor.command_context = command_context return command_context diff --git a/tests/variantstudy/model/command/test_manage_binding_constraints.py b/tests/variantstudy/model/command/test_manage_binding_constraints.py index 4846ee1b85..84f7b4fc73 100644 --- a/tests/variantstudy/model/command/test_manage_binding_constraints.py +++ b/tests/variantstudy/model/command/test_manage_binding_constraints.py @@ -1,14 +1,10 @@ from unittest.mock import Mock -from antarest.matrixstore.service import MatrixService from antarest.study.storage.rawstudy.io.reader import IniReader from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy from antarest.study.storage.rawstudy.model.filesystem.folder_node import ( ChildNotFoundError, ) -from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( - GeneratorMatrixConstants, -) from antarest.study.storage.variantstudy.model.command.common import ( BindingConstraintOperator, TimeStep, @@ -37,6 +33,9 @@ from antarest.study.storage.variantstudy.model.command.update_binding_constraint import ( UpdateBindingConstraint, ) +from antarest.study.storage.variantstudy.model.command.utils_extractor import ( + CommandExtractor, +) from antarest.study.storage.variantstudy.model.command_context import ( CommandContext, ) @@ -279,6 +278,12 @@ def test_revert(command_context: CommandContext): values=[[0]], command_context=command_context, ) + mock_command_extractor = Mock(spec=CommandExtractor) + object.__setattr__( + base, + "_get_command_extractor", + Mock(return_value=mock_command_extractor), + ) assert base.revert( [ UpdateBindingConstraint( @@ -348,11 +353,17 @@ def test_revert(command_context: CommandContext): ] study = FileStudy(config=Mock(), tree=Mock()) base.revert([], study) - base.command_context.command_extractor.extract_binding_constraint.assert_called_with( + mock_command_extractor.extract_binding_constraint.assert_called_with( study, "foo" ) base = RemoveBindingConstraint(id="foo", command_context=command_context) + mock_command_extractor = Mock(spec=CommandExtractor) + object.__setattr__( + base, + "_get_command_extractor", + Mock(return_value=mock_command_extractor), + ) assert base.revert( [ UpdateBindingConstraint( @@ -385,11 +396,11 @@ def test_revert(command_context: CommandContext): command_context=command_context, ) ] - base.command_context.command_extractor.extract_binding_constraint.side_effect = ChildNotFoundError( - "" + mock_command_extractor.extract_binding_constraint.side_effect = ( + ChildNotFoundError("") ) base.revert([], study) - base.command_context.command_extractor.extract_binding_constraint.assert_called_with( + mock_command_extractor.extract_binding_constraint.assert_called_with( study, "foo" ) diff --git a/tests/variantstudy/model/command/test_manage_district.py b/tests/variantstudy/model/command/test_manage_district.py index cefb68f4f7..ebfe8cf34c 100644 --- a/tests/variantstudy/model/command/test_manage_district.py +++ b/tests/variantstudy/model/command/test_manage_district.py @@ -1,6 +1,5 @@ -from unittest.mock import Mock +from unittest.mock import Mock, patch -from antarest.matrixstore.service import MatrixService from antarest.study.storage.rawstudy.io.reader import MultipleSameKeysIniReader from antarest.study.storage.rawstudy.model.filesystem.config.files import ( ConfigPathBuilder, @@ -12,9 +11,6 @@ from antarest.study.storage.rawstudy.model.filesystem.folder_node import ( ChildNotFoundError, ) -from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( - GeneratorMatrixConstants, -) from antarest.study.storage.variantstudy.model.command.create_area import ( CreateArea, ) @@ -183,7 +179,10 @@ def test_match(command_context: CommandContext): assert base.get_inner_matrices() == [] -def test_revert(command_context: CommandContext): +@patch( + "antarest.study.storage.variantstudy.model.command.utils_extractor.CommandExtractor.extract_district", +) +def test_revert(mock_extract_district, command_context: CommandContext): base = CreateDistrict( name="foo", base_filter=DistrictBaseFilter.add_all, @@ -196,13 +195,9 @@ def test_revert(command_context: CommandContext): base = RemoveDistrict(id="id", command_context=command_context) study = FileStudy(config=Mock(), tree=Mock()) - base.command_context.command_extractor.extract_district.side_effect = ( - ChildNotFoundError("") - ) + mock_extract_district.side_effect = ChildNotFoundError("") base.revert([], study) - base.command_context.command_extractor.extract_district.assert_called_with( - study, "id" - ) + mock_extract_district.assert_called_with(study, "id") assert base.revert( [ CreateDistrict( diff --git a/tests/variantstudy/model/command/test_remove_area.py b/tests/variantstudy/model/command/test_remove_area.py index 92bdf75b01..5dbcabcf05 100644 --- a/tests/variantstudy/model/command/test_remove_area.py +++ b/tests/variantstudy/model/command/test_remove_area.py @@ -1,8 +1,7 @@ -from unittest.mock import Mock +from unittest.mock import Mock, patch from checksumdir import dirhash -from antarest.matrixstore.service import MatrixService from antarest.study.storage.rawstudy.model.filesystem.config.model import ( transform_name_to_id, ) @@ -10,9 +9,6 @@ from antarest.study.storage.rawstudy.model.filesystem.folder_node import ( ChildNotFoundError, ) -from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( - GeneratorMatrixConstants, -) from antarest.study.storage.variantstudy.model.command.create_area import ( CreateArea, ) @@ -100,23 +96,22 @@ def test_match(command_context: CommandContext): assert base.get_inner_matrices() == [] -def test_revert(command_context: CommandContext): +@patch( + "antarest.study.storage.variantstudy.model.command.utils_extractor.CommandExtractor.extract_area", +) +def test_revert(mock_extract_area, command_context: CommandContext): base = RemoveArea(id="foo", command_context=command_context) assert base.revert( [CreateArea(area_name="foo", command_context=command_context)], None ) == [CreateArea(area_name="foo", command_context=command_context)] study = FileStudy(config=Mock(), tree=Mock()) - base.command_context.command_extractor.extract_area.return_value = ( + mock_extract_area.return_value = ( [Mock()], [Mock()], ) - base.command_context.command_extractor.extract_area.side_effect = ( - ChildNotFoundError("") - ) + mock_extract_area.side_effect = ChildNotFoundError("") base.revert([], study) - base.command_context.command_extractor.extract_area.assert_called_with( - study, "foo" - ) + mock_extract_area.assert_called_with(study, "foo") def test_create_diff(command_context: CommandContext): diff --git a/tests/variantstudy/model/command/test_remove_cluster.py b/tests/variantstudy/model/command/test_remove_cluster.py index 0cb3f04888..298e27000a 100644 --- a/tests/variantstudy/model/command/test_remove_cluster.py +++ b/tests/variantstudy/model/command/test_remove_cluster.py @@ -1,8 +1,7 @@ -from unittest.mock import Mock +from unittest.mock import Mock, patch from checksumdir import dirhash -from antarest.matrixstore.service import MatrixService from antarest.study.storage.rawstudy.model.filesystem.config.model import ( transform_name_to_id, ) @@ -10,9 +9,6 @@ from antarest.study.storage.rawstudy.model.filesystem.folder_node import ( ChildNotFoundError, ) -from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( - GeneratorMatrixConstants, -) from antarest.study.storage.variantstudy.model.command.create_area import ( CreateArea, ) @@ -111,7 +107,10 @@ def test_match(command_context: CommandContext): assert base.get_inner_matrices() == [] -def test_revert(command_context: CommandContext): +@patch( + "antarest.study.storage.variantstudy.model.command.utils_extractor.CommandExtractor.extract_cluster", +) +def test_revert(mock_extract_cluster, command_context: CommandContext): base = RemoveCluster( area_id="foo", cluster_id="bar", command_context=command_context ) @@ -138,13 +137,9 @@ def test_revert(command_context: CommandContext): ) ] study = FileStudy(config=Mock(), tree=Mock()) - base.command_context.command_extractor.extract_cluster.side_effect = ( - ChildNotFoundError("") - ) + mock_extract_cluster.side_effect = ChildNotFoundError("") base.revert([], study) - base.command_context.command_extractor.extract_cluster.assert_called_with( - study, "foo", "bar" - ) + mock_extract_cluster.assert_called_with(study, "foo", "bar") def test_create_diff(command_context: CommandContext): diff --git a/tests/variantstudy/model/command/test_remove_link.py b/tests/variantstudy/model/command/test_remove_link.py index c7e47bdda5..4b7ebab794 100644 --- a/tests/variantstudy/model/command/test_remove_link.py +++ b/tests/variantstudy/model/command/test_remove_link.py @@ -1,7 +1,7 @@ import os import uuid from pathlib import Path -from unittest.mock import Mock +from unittest.mock import Mock, patch from zipfile import ZipFile import pytest @@ -122,18 +122,17 @@ def test_match(self, command_context: CommandContext): assert base.get_inner_matrices() == [] @pytest.mark.unit_test - def test_revert(self, command_context: CommandContext): + @patch( + "antarest.study.storage.variantstudy.model.command.utils_extractor.CommandExtractor.extract_link", + ) + def test_revert(self, mock_extract_link, command_context: CommandContext): base = RemoveLink( area1="foo", area2="bar", command_context=command_context ) study = FileStudy(config=Mock(), tree=Mock()) - base.command_context.command_extractor.extract_link.side_effect = ( - ChildNotFoundError("") - ) + mock_extract_link.side_effect = ChildNotFoundError("") base.revert([], study) - base.command_context.command_extractor.extract_link.assert_called_with( - study, "bar", "foo" - ) + mock_extract_link.assert_called_with(study, "bar", "foo") assert base.revert( [ CreateLink( diff --git a/tests/variantstudy/model/command/test_remove_renewables_cluster.py b/tests/variantstudy/model/command/test_remove_renewables_cluster.py index e74c3f1740..c10adc49dd 100644 --- a/tests/variantstudy/model/command/test_remove_renewables_cluster.py +++ b/tests/variantstudy/model/command/test_remove_renewables_cluster.py @@ -1,4 +1,4 @@ -from unittest.mock import Mock +from unittest.mock import Mock, patch from checksumdir import dirhash @@ -104,7 +104,12 @@ def test_match(command_context: CommandContext): assert base.get_inner_matrices() == [] -def test_revert(command_context: CommandContext): +@patch( + "antarest.study.storage.variantstudy.model.command.utils_extractor.CommandExtractor.extract_renewables_cluster", +) +def test_revert( + mock_extract_renewables_cluster, command_context: CommandContext +): base = RemoveRenewablesCluster( area_id="foo", cluster_id="bar", command_context=command_context ) @@ -127,13 +132,9 @@ def test_revert(command_context: CommandContext): ) ] study = FileStudy(config=Mock(), tree=Mock()) - base.command_context.command_extractor.extract_renewables_cluster.side_effect = ChildNotFoundError( - "" - ) + mock_extract_renewables_cluster.side_effect = ChildNotFoundError("") base.revert([], study) - base.command_context.command_extractor.extract_renewables_cluster.assert_called_with( - study, "foo", "bar" - ) + mock_extract_renewables_cluster.assert_called_with(study, "foo", "bar") def test_create_diff(command_context: CommandContext): diff --git a/tests/variantstudy/model/command/test_replace_matrix.py b/tests/variantstudy/model/command/test_replace_matrix.py index c2a9fcbedc..61a78c1e46 100644 --- a/tests/variantstudy/model/command/test_replace_matrix.py +++ b/tests/variantstudy/model/command/test_replace_matrix.py @@ -1,13 +1,9 @@ -from unittest.mock import Mock +from unittest.mock import Mock, patch -from antarest.matrixstore.service import MatrixService from antarest.study.storage.rawstudy.model.filesystem.config.model import ( transform_name_to_id, ) from antarest.study.storage.rawstudy.model.filesystem.factory import FileStudy -from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( - GeneratorMatrixConstants, -) from antarest.study.storage.variantstudy.model.command.create_area import ( CreateArea, ) @@ -86,15 +82,16 @@ def test_match(command_context: CommandContext): assert base.get_inner_matrices() == ["matrix_id"] -def test_revert(command_context: CommandContext): +@patch( + "antarest.study.storage.variantstudy.model.command.utils_extractor.CommandExtractor.generate_replace_matrix" +) +def test_revert(mock_generate_replace_matrix, command_context: CommandContext): base = ReplaceMatrix( target="foo", matrix=[[0]], command_context=command_context ) study = FileStudy(config=Mock(), tree=Mock()) base.revert([], study) - base.command_context.command_extractor.generate_replace_matrix.assert_called_with( - study.tree, ["foo"] - ) + mock_generate_replace_matrix.assert_called_with(study.tree, ["foo"]) assert base.revert( [ ReplaceMatrix( diff --git a/tests/variantstudy/model/command/test_update_comments.py b/tests/variantstudy/model/command/test_update_comments.py index 4123d4cfee..a4bdd0be0c 100644 --- a/tests/variantstudy/model/command/test_update_comments.py +++ b/tests/variantstudy/model/command/test_update_comments.py @@ -9,6 +9,9 @@ from antarest.study.storage.variantstudy.model.command.update_comments import ( UpdateComments, ) +from antarest.study.storage.variantstudy.model.command.utils_extractor import ( + CommandExtractor, +) from antarest.study.storage.variantstudy.model.command_context import ( CommandContext, ) @@ -49,12 +52,30 @@ def test_match(command_context: CommandContext): assert base.match_signature() == "update_comments" -def test_revert(command_context: CommandContext, empty_study: FileStudy): +def test_revert( + command_context: CommandContext, + empty_study: FileStudy, +): + mock_command_extractor = Mock(spec=CommandExtractor) + mock_command_extractor.command_context = command_context + mock_command_extractor.generate_update_comments.side_effect = ( + lambda x: CommandExtractor.generate_update_comments( + mock_command_extractor, x + ) + ) + base_command = UpdateComments( comments="comments", command_context=command_context ) + + object.__setattr__( + base_command, + "_get_command_extractor", + Mock(return_value=mock_command_extractor), + ) + base_command.revert([], empty_study) - base_command.command_context.command_extractor.generate_update_comments.assert_called_with( + mock_command_extractor.generate_update_comments.assert_called_with( empty_study.tree ) assert base_command.revert( diff --git a/tests/variantstudy/model/command/test_update_config.py b/tests/variantstudy/model/command/test_update_config.py index ef81c980b7..306c294b21 100644 --- a/tests/variantstudy/model/command/test_update_config.py +++ b/tests/variantstudy/model/command/test_update_config.py @@ -1,4 +1,4 @@ -from unittest.mock import Mock +from unittest.mock import Mock, patch import pytest @@ -82,18 +82,17 @@ def test_match(command_context: CommandContext): assert base.match_signature() == "update_config%foo" -def test_revert(command_context: CommandContext): +@patch( + "antarest.study.storage.variantstudy.model.command.utils_extractor.CommandExtractor.generate_update_config" +) +def test_revert(mock_generate_update_config, command_context: CommandContext): base = UpdateConfig( target="foo", data="bar", command_context=command_context ) study = FileStudy(config=Mock(), tree=Mock()) - base.command_context.command_extractor.generate_update_config.side_effect = ChildNotFoundError( - "" - ) + mock_generate_update_config.side_effect = ChildNotFoundError("") res = base.revert([], study) - base.command_context.command_extractor.generate_update_config.assert_called_with( - study.tree, ["foo"] - ) + mock_generate_update_config.assert_called_with(study.tree, ["foo"]) assert res == [] assert base.revert( diff --git a/tests/variantstudy/model/test_variant_model.py b/tests/variantstudy/model/test_variant_model.py index f635f2d7b6..bce5e4403a 100644 --- a/tests/variantstudy/model/test_variant_model.py +++ b/tests/variantstudy/model/test_variant_model.py @@ -1,4 +1,4 @@ -import os +import datetime from pathlib import Path from unittest.mock import Mock, ANY @@ -7,12 +7,15 @@ from antarest.core.cache.business.local_chache import LocalCache from antarest.core.config import Config, StorageConfig, WorkspaceConfig from antarest.core.jwt import JWTUser, JWTGroup -from antarest.core.model import PublicMode from antarest.core.persistence import Base from antarest.core.requests import RequestParameters from antarest.core.roles import RoleType from antarest.core.utils.fastapi_sqlalchemy import DBSessionMiddleware, db -from antarest.study.model import DEFAULT_WORKSPACE_NAME, RawStudy +from antarest.study.model import ( + DEFAULT_WORKSPACE_NAME, + RawStudy, + StudyAdditionalData, +) from antarest.study.storage.variantstudy.model.dbmodel import VariantStudy from antarest.study.storage.variantstudy.model.model import ( CommandDTO, @@ -36,7 +39,11 @@ def test_commands_service(tmp_path: Path) -> VariantStudyService: - engine = create_engine("sqlite:///:memory:", echo=True) + engine = create_engine( + "sqlite:///:memory:", + echo=True, + connect_args={"check_same_thread": False}, + ) Base.metadata.create_all(engine) DBSessionMiddleware( Mock(), @@ -65,7 +72,11 @@ def test_commands_service(tmp_path: Path) -> VariantStudyService: with db(): # Save a study origin_id = "origin-id" - origin_study = RawStudy(id=origin_id, name="my-study") + origin_study = RawStudy( + id=origin_id, + name="my-study", + additional_data=StudyAdditionalData(), + ) repository.save(origin_study) # Create un new variant @@ -124,6 +135,10 @@ def test_commands_service(tmp_path: Path) -> VariantStudyService: # Generate service._generate_snapshot = Mock() + service._read_additional_data_from_files = Mock() + service._read_additional_data_from_files.return_value = ( + StudyAdditionalData() + ) expected_result = GenerationResultInfoDTO(success=True, details=[]) service._generate_snapshot.return_value = expected_result results = service._generate(saved_id, SADMIN, False) @@ -182,7 +197,11 @@ def export_flat( with db(): origin_id = "base-study" origin_study = RawStudy( - id=origin_id, name="my-study", workspace=DEFAULT_WORKSPACE_NAME + id=origin_id, + name="my-study", + workspace=DEFAULT_WORKSPACE_NAME, + additional_data=StudyAdditionalData(), + updated_at=datetime.datetime(year=2000, month=1, day=1), ) repository.save(origin_study) @@ -194,6 +213,10 @@ def export_flat( CommandDTO(action="some action", args={"some-args": "value"}), SADMIN, ) + service._read_additional_data_from_files = Mock() + service._read_additional_data_from_files.return_value = ( + StudyAdditionalData() + ) service._generate(variant_id, SADMIN, False) service.generator.generate.assert_called_with( [ANY], ANY, ANY, notifier=ANY diff --git a/tests/variantstudy/test_command_factory.py b/tests/variantstudy/test_command_factory.py index dc19007474..2bd33c999d 100644 --- a/tests/variantstudy/test_command_factory.py +++ b/tests/variantstudy/test_command_factory.py @@ -5,18 +5,19 @@ import pytest from antarest.matrixstore.service import MatrixService +from antarest.study.storage.patch_service import PatchService from antarest.study.storage.variantstudy.business.matrix_constants_generator import ( GeneratorMatrixConstants, ) from antarest.study.storage.variantstudy.command_factory import CommandFactory +from antarest.study.storage.variantstudy.model.command.common import ( + CommandName, +) from antarest.study.storage.variantstudy.model.command.icommand import ICommand from antarest.study.storage.variantstudy.model.command.utils import ( remove_none_args, ) from antarest.study.storage.variantstudy.model.model import CommandDTO -from antarest.study.storage.variantstudy.model.command.common import ( - CommandName, -) class TestCommandFactory: @@ -273,6 +274,7 @@ def test_command_factory(self, command_dto: CommandDTO): command_factory = CommandFactory( generator_matrix_constants=Mock(spec=GeneratorMatrixConstants), matrix_service=Mock(spec=MatrixService), + patch_service=Mock(spec=PatchService), ) command_list = command_factory.to_icommand(command_dto=command_dto) if isinstance(args := command_dto.args, dict): @@ -297,6 +299,7 @@ def test_unknown_command(): command_factory = CommandFactory( generator_matrix_constants=Mock(spec=GeneratorMatrixConstants), matrix_service=Mock(spec=MatrixService), + patch_service=Mock(spec=PatchService), ) command_factory.to_icommand( command_dto=CommandDTO(action="unknown_command", args={}) diff --git a/webapp/.eslintrc.json b/webapp/.eslintrc.json index 67417850e3..304b027518 100644 --- a/webapp/.eslintrc.json +++ b/webapp/.eslintrc.json @@ -1,74 +1,97 @@ { - "env": { - "browser": true, - "es6": true + "env": { + "browser": true, + "es6": true + }, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "airbnb", + "airbnb/hooks", + "plugin:prettier/recommended" + ], + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "ignorePatterns": [ + "build/*", + "serviceWorker.ts", + "**/*.test.tsx", + "**/*.test.ts", + "jexcel.css", + "jsuites.css", + "particles.css" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaFeatures": { + "jsx": true }, - "extends": [ - "plugin:@typescript-eslint/recommended", - "airbnb", - "airbnb/hooks" + "ecmaVersion": 2018, + "sourceType": "module" + }, + "plugins": ["react", "react-hooks", "@typescript-eslint"], + "rules": { + "@typescript-eslint/no-shadow": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + "args": "none", + "ignoreRestSiblings": true + } ], - "globals": { - "Atomics": "readonly", - "SharedArrayBuffer": "readonly" - }, - "ignorePatterns": [ - "build/*", - "serviceWorker.ts", - "**/*.test.tsx", - "**/*.test.ts", - "jexcel.css", - "jsuites.css", - "particles.css" + "consistent-return": "off", + "default-case": "off", + "import/extensions": [ + "error", + "ignorePackages", + { + "js": "never", + "jsx": "never", + "ts": "never", + "tsx": "never" + } ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaFeatures": { - "jsx": true - }, - "ecmaVersion": 2018, - "sourceType": "module" - }, - "plugins": [ - "react", - "@typescript-eslint", - "react-hooks" + "import/prefer-default-export": "off", + "no-undef": "off", + "no-param-reassign": ["error", { "props": true, "ignorePropertyModificationsForRegex": ["^draft", "acc"] }], + "no-shadow": "off", + "no-unused-vars": "off", + "no-use-before-define": ["error", { "functions": false }], + "prettier/prettier": [ + "error", + { + "endOfLine": "auto" + } ], - "rules": { - "import/extensions": [ - "error", - "ignorePackages", - { - "js": "never", - "jsx": "never", - "ts": "never", - "tsx": "never" - } - ], - "max-len": "off", - "react/jsx-filename-extension": [2, { "extensions": [".jsx", ".tsx"] }], - "@typescript-eslint/explicit-function-return-type": "off", - "import/no-extraneous-dependencies": "off", - // prettier compat - "implicit-arrow-linebreak": "off", - "operator-linebreak": "off", - "object-curly-newline": "off", - "react/jsx-curly-newline": "off" - }, - "overrides": [ - { - // enable the rule specifically for TypeScript files - "files": ["*.ts"], - "rules": { - "@typescript-eslint/explicit-function-return-type": ["warn"] - } - } - ], - "settings": { - "import/resolver": { - "node": { - "extensions": [".js", ".jsx", ".ts", ".tsx"] - } - } + "react/jsx-filename-extension": [2, { "extensions": [".jsx", ".tsx"] }], + "react/react-in-jsx-scope": "off", + "react/jsx-props-no-spreading": "off", + "react/jsx-uses-react": "off", + "react-hooks/exhaustive-deps": "warn", + "spaced-comment": [ + "error", + "always", + { "line": { "exceptions": ["/"], "markers": ["/"] } } + ] + }, + "overrides": [ + { + // enable the rule specifically for TypeScript files + "files": ["*.ts"], + "rules": { + "@typescript-eslint/explicit-function-return-type": ["warn"] + } + } + ], + "settings": { + "import/resolver": { + "node": { + "extensions": [".js", ".jsx", ".ts", ".tsx"] + } } -} \ No newline at end of file + } +} diff --git a/webapp/.gitignore b/webapp/.gitignore index 35be3a62e6..d9986a68e8 100644 --- a/webapp/.gitignore +++ b/webapp/.gitignore @@ -1,11 +1,10 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. -#ide files -*.code-workspace # dependencies /node_modules /.pnp .pnp.js +package-lock.json # testing /coverage @@ -20,10 +19,9 @@ .env.test.local .env.production.local +# workspace +workspace.code-workspace + npm-debug.log* yarn-debug.log* yarn-error.log* - -# maven build -/node -/target diff --git a/webapp_v2/.prettierignore b/webapp/.prettierignore similarity index 100% rename from webapp_v2/.prettierignore rename to webapp/.prettierignore diff --git a/webapp/.prettierrc.json b/webapp/.prettierrc.json index 50062de997..f4b5e4bae0 100644 --- a/webapp/.prettierrc.json +++ b/webapp/.prettierrc.json @@ -1,9 +1,8 @@ { - "printWidth": 100, - "arrowParens": "always", - "semi": true, - "singleQuote":true, - "tabWidth": 2, - "trailingComma": "all", - "eslintIntegration": true + "prettier/prettier": [ + "error", + { + "endOfLine": "auto" + } + ] } diff --git a/webapp/README.md b/webapp/README.md index a31481cae9..b87cb00449 100644 --- a/webapp/README.md +++ b/webapp/README.md @@ -1,3 +1,5 @@ +# Getting Started with Create React App + This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). ## Available Scripts @@ -6,23 +8,23 @@ In the project directory, you can run: ### `npm start` -Runs the app in the development mode.
+Runs the app in the development mode.\ Open [http://localhost:3000](http://localhost:3000) to view it in the browser. -The page will reload if you make edits.
+The page will reload if you make edits.\ You will also see any lint errors in the console. ### `npm test` -Launches the test runner in the interactive watch mode.
+Launches the test runner in the interactive watch mode.\ See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. ### `npm run build` -Builds the app for production to the `build` folder.
+Builds the app for production to the `build` folder.\ It correctly bundles React in production mode and optimizes the build for the best performance. -The build is minified and the filenames include the hashes.
+The build is minified and the filenames include the hashes.\ Your app is ready to be deployed! See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. @@ -33,7 +35,7 @@ See the section about [deployment](https://facebook.github.io/create-react-app/d If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. -Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. diff --git a/webapp_v2/config-overrides.js b/webapp/config-overrides.js similarity index 100% rename from webapp_v2/config-overrides.js rename to webapp/config-overrides.js diff --git a/webapp/package-lock.json b/webapp/package-lock.json deleted file mode 100644 index 25ec11c211..0000000000 --- a/webapp/package-lock.json +++ /dev/null @@ -1,19102 +0,0 @@ -{ - "name": "antares-web", - "version": "2.3.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" - }, - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "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": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", - "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", - "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-decorators": "^7.8.3" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", - "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", - "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", - "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-flow": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz", - "integrity": "sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", - "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz", - "integrity": "sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz", - "integrity": "sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", - "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "resolve": "^1.8.1", - "semver": "^5.5.1" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - } - }, - "@babel/preset-typescript": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz", - "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-typescript": "^7.9.0" - } - }, - "@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz", - "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==", - "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", - "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.0", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bkrem/react-transition-group": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@bkrem/react-transition-group/-/react-transition-group-1.3.1.tgz", - "integrity": "sha512-AJBMFURKY6VcenLCb2RTRivIy3Yy/JOUWHt3XjL4lDqCzdOryWxaa4HCIUWlhvn462p/gV9QbEihKmNZfvwDKA==", - "requires": { - "chain-function": "^1.0.0", - "dom-helpers": "^3.3.1", - "loose-envify": "^1.3.1", - "prop-types": "^15.5.6", - "react-lifecycles-compat": "^3.0.4", - "warning": "^3.0.0" - }, - "dependencies": { - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "requires": { - "@babel/runtime": "^7.1.2" - } - } - } - }, - "@braintree/sanitize-url": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-5.0.2.tgz", - "integrity": "sha512-NBEJlHWrhQucLhZGHtSxM2loSaNUMajC7KOYJLyfcdW/6goVoff2HoYI3bz8YCDN0wKGbxtUL0gx2dvHpvnWlw==" - }, - "@choojs/findup": { - "version": "0.2.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@choojs/findup/-/findup-0.2.1.tgz", - "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", - "requires": { - "commander": "^2.15.1" - } - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@csstools/convert-colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", - "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" - }, - "@csstools/normalize.css": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", - "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" - }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" - }, - "@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", - "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==" - }, - "@fortawesome/fontawesome-svg-core": { - "version": "1.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz", - "integrity": "sha512-YUcsLQKYb6DmaJjIHdDWpBIGCcyE/W+p/LMGvjQem55Mm2XWVAP5kWTMKWLv9lwpCVjpLxPyOMOyUocP1GxrtA==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - } - }, - "@fortawesome/free-brands-svg-icons": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.4.tgz", - "integrity": "sha512-f1witbwycL9cTENJegcmcZRYyawAFbm8+c6IirLmwbbpqz46wyjbQYLuxOc7weXFXfB7QR8/Vd2u5R3q6JYD9g==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "dependencies": { - "@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", - "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==" - } - } - }, - "@fortawesome/free-regular-svg-icons": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.4.tgz", - "integrity": "sha512-9VNNnU3CXHy9XednJ3wzQp6SwNwT3XaM26oS4Rp391GsxVYA+0oDR2J194YCIWf7jNRCYKjUCOduxdceLrx+xw==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "dependencies": { - "@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", - "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==" - } - } - }, - "@fortawesome/free-solid-svg-icons": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz", - "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==", - "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.36" - }, - "dependencies": { - "@fortawesome/fontawesome-common-types": { - "version": "0.2.36", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz", - "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==" - } - } - }, - "@fortawesome/react-fontawesome": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.17.tgz", - "integrity": "sha512-dX43Z5IvMaW7fwzU8farosYjKNGfRb2HB/DgjVBHeJZ/NSnuuaujPPx0YOdcAq+n3mqn70tyCde2HM1mqbhiuw==", - "requires": { - "prop-types": "^15.8.1" - } - }, - "@handsontable/react": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@handsontable/react/-/react-9.0.2.tgz", - "integrity": "sha512-teEsLBoKB47C8LhqmebmXq2b/1OVZ2//wZSXeern7KBqmSFtR0ISjMhBxHWxeaEgBMrjVimksgBb7x4yEfOJaw==" - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@icons/material": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", - "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==" - }, - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - } - }, - "@jest/core": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", - "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/reporters": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-changed-files": "^24.9.0", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-resolve-dependencies": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "jest-watcher": "^24.9.0", - "micromatch": "^3.1.10", - "p-each-series": "^1.0.0", - "realpath-native": "^1.1.0", - "rimraf": "^2.5.4", - "slash": "^2.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "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" - } - } - } - }, - "@jest/environment": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", - "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", - "requires": { - "@jest/fake-timers": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - } - }, - "@jest/reporters": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", - "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.2", - "istanbul-lib-coverage": "^2.0.2", - "istanbul-lib-instrument": "^3.0.1", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.1", - "istanbul-reports": "^2.2.6", - "jest-haste-map": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "node-notifier": "^5.4.2", - "slash": "^2.0.0", - "source-map": "^0.6.0", - "string-length": "^2.0.0" - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - } - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - } - }, - "@jest/test-sequencer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", - "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", - "requires": { - "@jest/test-result": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-runner": "^24.9.0", - "jest-runtime": "^24.9.0" - } - }, - "@jest/transform": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", - "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^24.9.0", - "babel-plugin-istanbul": "^5.1.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.15", - "jest-haste-map": "^24.9.0", - "jest-regex-util": "^24.9.0", - "jest-util": "^24.9.0", - "micromatch": "^3.1.10", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "2.4.1" - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@kyleshockey/object-assign-deep": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@kyleshockey/object-assign-deep/-/object-assign-deep-0.4.2.tgz", - "integrity": "sha1-hJAPDu/DcnmPR1G1JigwuCCJIuw=" - }, - "@kyleshockey/xml": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@kyleshockey/xml/-/xml-1.0.2.tgz", - "integrity": "sha512-iMo32MPLcI9cPxs3YL5kmKxKgDmkSZDCFEqIT5eRk7d/Ll8r4X3SwGYSigzALd6+RHWlFEmjL1QyaQ15xDZFlw==", - "requires": { - "stream": "^0.0.2" - } - }, - "@mapbox/geojson-rewind": { - "version": "0.5.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/geojson-rewind/-/geojson-rewind-0.5.1.tgz", - "integrity": "sha512-eL7fMmfTBKjrb+VFHXCGv9Ot0zc3C0U+CwXo1IrP+EPwDczLoXv34Tgq3y+2mPSFNVUXgU42ILWJTC7145KPTA==", - "requires": { - "get-stream": "^6.0.1", - "minimist": "^1.2.5" - } - }, - "@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, - "@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=" - }, - "@mapbox/mapbox-gl-supported": { - "version": "1.5.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", - "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==" - }, - "@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=" - }, - "@mapbox/tiny-sdf": { - "version": "1.2.5", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", - "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" - }, - "@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" - }, - "@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", - "requires": { - "@mapbox/point-geometry": "~0.1.0" - } - }, - "@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" - }, - "@material-ui/core": { - "version": "4.12.3", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.3.tgz", - "integrity": "sha512-sdpgI/PL56QVsEJldwEe4FFaFTLUqN+rd7sSZiRCdx2E/C7z5yK0y/khAWVBH24tXwto7I1hCzNWfJGZIYJKnw==", - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.11.4", - "@material-ui/system": "^4.12.1", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.2", - "@types/react-transition-group": "^4.2.0", - "clsx": "^1.0.4", - "hoist-non-react-statics": "^3.3.2", - "popper.js": "1.16.1-lts", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0", - "react-transition-group": "^4.4.0" - } - }, - "@material-ui/icons": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz", - "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==", - "requires": { - "@babel/runtime": "^7.4.4" - } - }, - "@material-ui/lab": { - "version": "4.0.0-alpha.60", - "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.60.tgz", - "integrity": "sha512-fadlYsPJF+0fx2lRuyqAuJj7hAS1tLDdIEEdov5jlrpb5pp4b+mRDUqQTUxi4inRZHS1bEXpU8QWUhO6xX88aA==", - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.2", - "clsx": "^1.0.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - } - }, - "@material-ui/styles": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", - "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", - "requires": { - "@babel/runtime": "^7.4.4", - "@emotion/hash": "^0.8.0", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.2", - "clsx": "^1.0.4", - "csstype": "^2.5.2", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.5.1", - "jss-plugin-camel-case": "^10.5.1", - "jss-plugin-default-unit": "^10.5.1", - "jss-plugin-global": "^10.5.1", - "jss-plugin-nested": "^10.5.1", - "jss-plugin-props-sort": "^10.5.1", - "jss-plugin-rule-value-function": "^10.5.1", - "jss-plugin-vendor-prefixer": "^10.5.1", - "prop-types": "^15.7.2" - } - }, - "@material-ui/system": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.1.tgz", - "integrity": "sha512-lUdzs4q9kEXZGhbN7BptyiS1rLNHe6kG9o8Y307HCvF4sQxbCgpL2qi+gUk+yI8a2DNk48gISEQxoxpgph0xIw==", - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.2", - "csstype": "^2.5.2", - "prop-types": "^15.7.2" - } - }, - "@material-ui/types": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", - "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" - }, - "@material-ui/utils": { - "version": "4.11.2", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", - "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", - "requires": { - "@babel/runtime": "^7.4.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - } - }, - "@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==", - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@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==" - }, - "@plotly/d3": { - "version": "3.8.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@plotly/d3/-/d3-3.8.0.tgz", - "integrity": "sha512-L10iHgzvw3uSic/nQpYehlNzxUQvImwms5U7S95pJAEhrllzkrdQNy1Mc5DW9ab881Yr4fh300gJztKXWZDfkQ==" - }, - "@plotly/d3-sankey": { - "version": "0.7.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", - "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", - "requires": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - } - }, - "@plotly/d3-sankey-circular": { - "version": "0.33.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", - "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", - "requires": { - "d3-array": "^1.2.1", - "d3-collection": "^1.0.4", - "d3-shape": "^1.2.0", - "elementary-circuits-directed-graph": "^1.0.4" - } - }, - "@plotly/point-cluster": { - "version": "3.1.9", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", - "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", - "requires": { - "array-bounds": "^1.0.1", - "binary-search-bounds": "^2.0.4", - "clamp": "^1.0.1", - "defined": "^1.0.0", - "dtype": "^2.0.0", - "flatten-vertex-data": "^1.0.2", - "is-obj": "^1.0.1", - "math-log2": "^1.0.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0" - } - }, - "@react-dnd/asap": { - "version": "4.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@react-dnd/asap/-/asap-4.0.0.tgz", - "integrity": "sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==" - }, - "@react-dnd/invariant": { - "version": "2.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@react-dnd/invariant/-/invariant-2.0.0.tgz", - "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==" - }, - "@react-dnd/shallowequal": { - "version": "2.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", - "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==" - }, - "@sheerun/mutationobserver-shim": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", - "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==" - }, - "@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==" - }, - "@socket.io/component-emitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz", - "integrity": "sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==" - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", - "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", - "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==" - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.3.3.tgz", - "integrity": "sha512-w3Be6xUNdwgParsvxkkeZb545VhXEwjGMwExMVBIdPQJeyMQHqm9Msnb2a1teHBqUYL66qtwfhNkbj1iarCG7w==" - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", - "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==" - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", - "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", - "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==" - }, - "@svgr/babel-preset": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", - "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", - "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", - "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", - "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", - "@svgr/babel-plugin-transform-svg-component": "^4.2.0" - } - }, - "@svgr/core": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", - "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", - "requires": { - "@svgr/plugin-jsx": "^4.3.3", - "camelcase": "^5.3.1", - "cosmiconfig": "^5.2.1" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", - "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@svgr/plugin-jsx": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", - "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", - "requires": { - "@babel/core": "^7.4.5", - "@svgr/babel-preset": "^4.3.3", - "@svgr/hast-util-to-babel-ast": "^4.3.2", - "svg-parser": "^2.0.0" - } - }, - "@svgr/plugin-svgo": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", - "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", - "requires": { - "cosmiconfig": "^5.2.1", - "merge-deep": "^3.0.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", - "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", - "requires": { - "@babel/core": "^7.4.5", - "@babel/plugin-transform-react-constant-elements": "^7.0.0", - "@babel/preset-env": "^7.4.5", - "@babel/preset-react": "^7.0.0", - "@svgr/core": "^4.3.3", - "@svgr/plugin-jsx": "^4.3.3", - "@svgr/plugin-svgo": "^4.3.1", - "loader-utils": "^1.2.3" - } - }, - "@testing-library/dom": { - "version": "6.16.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz", - "integrity": "sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==", - "requires": { - "@babel/runtime": "^7.8.4", - "@sheerun/mutationobserver-shim": "^0.3.2", - "@types/testing-library__dom": "^6.12.1", - "aria-query": "^4.0.2", - "dom-accessibility-api": "^0.3.0", - "pretty-format": "^25.1.0", - "wait-for-expect": "^3.0.2" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", - "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", - "requires": { - "@babel/runtime": "^7.5.1", - "chalk": "^2.4.1", - "css": "^2.2.3", - "css.escape": "^1.5.1", - "jest-diff": "^24.0.0", - "jest-matcher-utils": "^24.0.0", - "lodash": "^4.17.11", - "pretty-format": "^24.0.0", - "redent": "^3.0.0" - } - }, - "@testing-library/react": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz", - "integrity": "sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==", - "requires": { - "@babel/runtime": "^7.8.4", - "@testing-library/dom": "^6.15.0", - "@types/testing-library__react": "^9.1.2" - } - }, - "@testing-library/user-event": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", - "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==" - }, - "@turf/area": { - "version": "6.5.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@turf/area/-/area-6.5.0.tgz", - "integrity": "sha512-xCZdiuojokLbQ+29qR6qoMD89hv+JAgWjLrwSEWL+3JV8IXKeNFl6XkEJz9HGkVpnXvQKJoRz4/liT+8ZZ5Jyg==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/bbox": { - "version": "6.5.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@turf/bbox/-/bbox-6.5.0.tgz", - "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/centroid": { - "version": "6.5.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@turf/centroid/-/centroid-6.5.0.tgz", - "integrity": "sha512-MwE1oq5E3isewPprEClbfU5pXljIK/GUOMbn22UM3IFPDJX0KeoyLNwghszkdmFp/qMGL/M13MMWvU+GNLXP/A==", - "requires": { - "@turf/helpers": "^6.5.0", - "@turf/meta": "^6.5.0" - } - }, - "@turf/helpers": { - "version": "6.5.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@turf/helpers/-/helpers-6.5.0.tgz", - "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==" - }, - "@turf/meta": { - "version": "6.5.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@turf/meta/-/meta-6.5.0.tgz", - "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", - "requires": { - "@turf/helpers": "^6.5.0" - } - }, - "@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==", - "dev": true, - "requires": { - "classnames": "*" - } - }, - "@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" - }, - "@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" - }, - "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" - }, - "@types/d3": { - "version": "3.5.46", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.46.tgz", - "integrity": "sha512-jNHfiGd41+JUV43LTMzQNidyp4Hn0XfhoSmy8baE0d/N5pGYpD+yX03JacY/MH+smFxYOQGXlz4HxkRZOuRNOQ==", - "dev": true - }, - "@types/d3-hierarchy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", - "integrity": "sha512-AbStKxNyWiMDQPGDguG2Kuhlq1Sv539pZSxYbx4UZeYkutpPwXCcgyiRrlV4YH64nIOsKx7XVnOMy9O7rJsXkg==" - }, - "@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dev": true, - "requires": { - "@types/ms": "*" - } - }, - "@types/draft-convert": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/draft-convert/-/draft-convert-2.1.4.tgz", - "integrity": "sha512-NbhE0ijzENK6ZQa3zO0KK6cNS80XESnQ03Bg7DEzE/qBg6YvpIEni6vzruYCYPkm1Sc6z0K7XbtJu4p53elGdA==", - "requires": { - "@types/draft-js": "*", - "@types/react": "*" - } - }, - "@types/draft-js": { - "version": "0.11.9", - "resolved": "https://registry.npmjs.org/@types/draft-js/-/draft-js-0.11.9.tgz", - "integrity": "sha512-cQJBZjjIlGaPA1tOY+wGz2KhlPtAAZOIXpUvGPxPRw5uzZ2tcj8m6Yu1QDV9YgP36+cqE3cUvgkARBzgUiuI/Q==", - "requires": { - "@types/react": "*", - "immutable": "~3.7.4" - } - }, - "@types/draftjs-to-html": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@types/draftjs-to-html/-/draftjs-to-html-0.8.1.tgz", - "integrity": "sha512-NBkphQs+qZ/sAz/j1pCUaxkPAOx00LTsE88aMSSfcvK+UfCpjHJDqIMCkm6wKotuJvY5w0BtdRazQ0sAaXzPdg==", - "requires": { - "@types/draft-js": "*" - } - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "requires": { - "@types/unist": "*" - } - }, - "@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "24.9.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.1.tgz", - "integrity": "sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q==", - "requires": { - "jest-diff": "^24.3.0" - } - }, - "@types/js-cookie": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", - "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", - "dev": true - }, - "@types/node": { - "version": "12.20.43", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz", - "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/pikaday": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@types/pikaday/-/pikaday-1.7.4.tgz", - "integrity": "sha512-0KsHVyw5pTG829nqG4IRu7m+BFQlFEBdbE/1i3S5182HeKUKv1uEW0gyEmkJVp5i4IV+9pyh23O83+KpRkSQbw==", - "requires": { - "moment": ">=2.14.0" - } - }, - "@types/plotly.js": { - "version": "1.54.20", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.20.tgz", - "integrity": "sha512-vqiqq5chr72QoApD+6Hu52iuBvT5/po/sdVF74IBnacQV6J1MjH9OeFZ3GFDwKLF24xT++FMkEGAWcgVMwg2YQ==", - "dev": true, - "requires": { - "@types/d3": "^3" - } - }, - "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" - }, - "@types/react": { - "version": "16.14.23", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.23.tgz", - "integrity": "sha512-WngBZLuSkP4IAgPi0HOsGCHo6dn3CcuLQnCfC17VbA7YBgipZiZoTOhObwl/93DsFW0Y2a/ZXeonpW4DxirEJg==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" - } - } - }, - "@types/react-beautiful-dnd": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/@types/react-beautiful-dnd/-/react-beautiful-dnd-13.1.2.tgz", - "integrity": "sha512-+OvPkB8CdE/bGdXKyIhc/Lm2U7UAYCCJgsqmopFmh9gbAudmslkI8eOrPDjg4JhwSE6wytz4a3/wRjKtovHVJg==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-color": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/react-color/-/react-color-3.0.6.tgz", - "integrity": "sha512-OzPIO5AyRmLA7PlOyISlgabpYUa3En74LP8mTMa0veCA719SvYQov4WLMsHvCgXP+L+KI9yGhYnqZafVGG0P4w==", - "dev": true, - "requires": { - "@types/react": "*", - "@types/reactcss": "*" - } - }, - "@types/react-d3-graph": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/react-d3-graph/-/react-d3-graph-2.6.3.tgz", - "integrity": "sha512-OYM7eO/4U6ARP8E3izk5VrkHLqO/0YI3QGFymLGt/AR/ETbc4Spx0Ljpa/3hJ/0wLmncLTyUV6gegcNooDAEww==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-dom": { - "version": "16.9.14", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.14.tgz", - "integrity": "sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A==", - "requires": { - "@types/react": "^16" - } - }, - "@types/react-is": { - "version": "17.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/@types/react-is/-/react-is-17.0.3.tgz", - "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", - "requires": { - "@types/react": "*" - } - }, - "@types/react-plotly.js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@types/react-plotly.js/-/react-plotly.js-2.5.0.tgz", - "integrity": "sha512-bda7N/Y65d1x0FfwhgUXAugGeG9CRIxmkW/yBL8PVFUMvZGpfEnw4bXKjDozBYlOskVfxj6UQ9IKmZI6CZ7/QQ==", - "dev": true, - "requires": { - "@types/plotly.js": "*", - "@types/react": "*" - } - }, - "@types/react-redux": { - "version": "7.1.22", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.22.tgz", - "integrity": "sha512-GxIA1kM7ClU73I6wg9IRTVwSO9GS+SAKZKe0Enj+82HMU6aoESFU2HNAdNi3+J53IaOHPiUfT3kSG4L828joDQ==", - "requires": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "@types/react-resizable": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@types/react-resizable/-/react-resizable-1.7.4.tgz", - "integrity": "sha512-+xsGkd+Gvb9+8mLR1EyhNN8kBRJcsT1uJF4WpkFpFPIoApX2S89BmJA2RVtMdkhwe6YxV4RbHfaJ3bIdcgHc7g==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-router": { - "version": "5.1.18", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", - "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dev": true, - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "@types/react-router-redux": { - "version": "5.0.21", - "resolved": "https://registry.npmjs.org/@types/react-router-redux/-/react-router-redux-5.0.21.tgz", - "integrity": "sha512-BF2OrI3bW5gJhjqKElu/YK7lnUySFV9BMm5ryJbm47rARLLdCr72dC6cXBzcFORqsDTCrFbhsFsq2ogJRY4fvg==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*", - "redux": ">= 3.7.2" - } - }, - "@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", - "requires": { - "@types/react": "*" - } - }, - "@types/react-virtualized": { - "version": "9.21.17", - "resolved": "https://registry.npmjs.org/@types/react-virtualized/-/react-virtualized-9.21.17.tgz", - "integrity": "sha512-8JWc9GzurY9L0iqlL+dPziUsyP7MsY27m8k8mCEZNvuYwA3o2vvbkRkb1IoCdV2XYwPU4w8wfaBHungLGr0b4w==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/react": "*" - } - }, - "@types/react-virtualized-auto-sizer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.1.tgz", - "integrity": "sha512-GH8sAnBEM5GV9LTeiz56r4ZhMOUSrP43tAQNSRVxNexDjcNKLCEtnxusAItg1owFUFE6k0NslV26gqVClVvong==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-window": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.5.tgz", - "integrity": "sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/reactcss": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/reactcss/-/reactcss-1.2.6.tgz", - "integrity": "sha512-qaIzpCuXNWomGR1Xq8SCFTtF4v8V27Y6f+b9+bzHiv087MylI/nTCqqdChNeWS7tslgROmYB7yeiruWX7WnqNg==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/redux": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@types/redux/-/redux-3.6.0.tgz", - "integrity": "sha1-8evh5UEVGAcuT9/KXHbhbnTBOZo=", - "requires": { - "redux": "*" - } - }, - "@types/redux-logger": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@types/redux-logger/-/redux-logger-3.0.9.tgz", - "integrity": "sha512-cwYhVbYNgH01aepeMwhd0ABX6fhVB2rcQ9m80u8Fl50ZODhsZ8RhQArnLTkE7/Zrfq4Sz/taNoF7DQy9pCZSKg==", - "requires": { - "redux": "^4.0.0" - } - }, - "@types/redux-thunk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/redux-thunk/-/redux-thunk-2.1.0.tgz", - "integrity": "sha1-vCtulylhgxr7gqm/TwZybjUflBY=", - "requires": { - "redux-thunk": "*" - } - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@types/socket.io-client": { - "version": "1.4.36", - "resolved": "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.36.tgz", - "integrity": "sha512-ZJWjtFBeBy1kRSYpVbeGYTElf6BqPQUkXDlHHD4k/42byCN5Rh027f4yARHCink9sKAkbtGZXEAmR0ZCnc2/Ag==", - "dev": true - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "@types/swagger-ui-react": { - "version": "3.35.3", - "resolved": "https://registry.npmjs.org/@types/swagger-ui-react/-/swagger-ui-react-3.35.3.tgz", - "integrity": "sha512-h1SajExD4bcvobbYijqEGXRg80KJvABmkT9WyMXveZUScg/brK+wd5ADa+I56Krv+eVmEs1I+YqDhmikzSvsXQ==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/testing-library__dom": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz", - "integrity": "sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==", - "requires": { - "pretty-format": "^24.3.0" - } - }, - "@types/testing-library__react": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz", - "integrity": "sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==", - "requires": { - "@types/react-dom": "*", - "@types/testing-library__dom": "*", - "pretty-format": "^25.1.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "@types/uuid": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.5.tgz", - "integrity": "sha512-hKB88y3YHL8oPOs/CNlaXtjWn93+Bs48sDQR37ZUqG2tLeCS7EA1cmnkKsuQsub9OKEB/y/Rw9zqJqqNSbqVlQ==" - }, - "@types/xml-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/xml-js/-/xml-js-1.0.0.tgz", - "integrity": "sha1-8FNa6hzBJvs0/A0KJ4ylmZfIme4=", - "requires": { - "xml-js": "*" - } - }, - "@types/yargs": { - "version": "13.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", - "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", - "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", - "requires": { - "@typescript-eslint/experimental-utils": "2.34.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", - "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.34.0", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "abs-svg-path": { - "version": "0.1.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ace-builds": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.4.14.tgz", - "integrity": "sha512-NBOQlm9+7RBqRqZwimpgquaLeTJFayqb9UEPtTkpC3TkkwDnlsT/TwsCC0svjt9kEZ6G9mH5AEOHSz6Q/HrzQQ==" - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" - } - } - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" - }, - "adjust-sourcemap-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", - "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" - }, - "almost-equal": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha1-+FHGMROHV5lCdqou++jfowZszN0=" - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - } - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": 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==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "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" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "arity-n": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", - "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=" - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "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==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-bounds": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-normalize": { - "version": "1.1.4", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "requires": { - "array-bounds": "^1.0.0" - } - }, - "array-range": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha1-9W5GWRhDYRxqVvd+8C7afFAIm/w=" - }, - "array-rearrange": { - "version": "2.2.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "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=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "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=" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "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==", - "requires": { - "lodash": "^4.17.14" - } - }, - "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==" - }, - "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==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=" - }, - "autolinker": { - "version": "3.14.3", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-3.14.3.tgz", - "integrity": "sha512-t81i2bCpS+s+5FIhatoww9DmpjhbdiimuU9ATEuLxtZMQ7jLv9fyFn7SWNG8IkEfD4AmYyirL1ss9k1aqVWRvg==", - "requires": { - "tslib": "^1.9.3" - } - }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - } - } - }, - "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.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", - "dev": true - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "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=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "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=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "babel-extract-comments": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", - "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", - "requires": { - "babylon": "^6.18.0" - } - }, - "babel-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", - "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", - "requires": { - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^5.1.0", - "babel-preset-jest": "^24.9.0", - "chalk": "^2.4.2", - "slash": "^2.0.0" - } - }, - "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==", - "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": { - "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": { - "minimist": "^1.2.5" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "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==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-import": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/babel-plugin-import/-/babel-plugin-import-1.13.3.tgz", - "integrity": "sha512-1qCWdljJOrDRH/ybaCZuDgySii4yYrtQ8OJQwrcDqdt0y67N30ng3X3nABg6j7gR7qUJgcMa9OMhc4AGViDwWw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/runtime": "^7.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", - "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "find-up": "^3.0.0", - "istanbul-lib-instrument": "^3.3.0", - "test-exclude": "^5.2.3" - } - }, - "babel-plugin-jest-hoist": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", - "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", - "requires": { - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "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==" - } - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==" - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "babel-preset-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", - "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", - "requires": { - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^24.9.0" - } - }, - "babel-preset-react-app": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.2.tgz", - "integrity": "sha512-k58RtQOKH21NyKtzptoAvtAODuAJJs3ZhqBMl456/GnXEQ/0La92pNmwgWoMn5pBTrsvk3YYXdY7zpY4e3UIxA==", - "requires": { - "@babel/core": "7.9.0", - "@babel/plugin-proposal-class-properties": "7.8.3", - "@babel/plugin-proposal-decorators": "7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3", - "@babel/plugin-proposal-numeric-separator": "7.8.3", - "@babel/plugin-proposal-optional-chaining": "7.9.0", - "@babel/plugin-transform-flow-strip-types": "7.9.0", - "@babel/plugin-transform-react-display-name": "7.8.3", - "@babel/plugin-transform-runtime": "7.9.0", - "@babel/preset-env": "7.9.0", - "@babel/preset-react": "7.9.1", - "@babel/preset-typescript": "7.9.0", - "@babel/runtime": "7.9.0", - "babel-plugin-macros": "2.8.0", - "babel-plugin-transform-react-remove-prop-types": "0.4.24" - }, - "dependencies": { - "@babel/plugin-proposal-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", - "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", - "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@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==", - "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" - } - }, - "@babel/preset-react": { - "version": "7.9.1", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.1.tgz", - "integrity": "sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.9.1", - "@babel/plugin-transform-react-jsx-development": "^7.9.0", - "@babel/plugin-transform-react-jsx-self": "^7.9.0", - "@babel/plugin-transform-react-jsx-source": "^7.9.0" - } - }, - "@babel/runtime": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.0.tgz", - "integrity": "sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "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=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "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=", - "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==", - "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==", - "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==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "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==" - } - } - }, - "base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "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" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "bignumber.js": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", - "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "binary-search-bounds": { - "version": "2.0.5", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", - "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4=" - }, - "bitmap-sdf": { - "version": "1.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/bitmap-sdf/-/bitmap-sdf-1.0.3.tgz", - "integrity": "sha512-ojYySSvWTx21cbgntR942zgEgqj38wHctN64vr4vYRFf3GKVmI23YlA94meWGkFslidwLwGCsMy2laJ3g/94Sg==", - "requires": { - "clamp": "^1.0.1" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "optional": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "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==", - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "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==", - "optional": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "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=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "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==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "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==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "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==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "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==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "optional": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "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==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "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=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "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": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "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==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001310", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001310.tgz", - "integrity": "sha512-cb9xTV8k9HTIUA3GnPUJCk0meUnrHL5gy5QePfDjxHyNBcnzPzrHFv5GqfP7ue5b1ZyzZL0RJboD6hQlPXjhjg==" - }, - "canvas-fit": { - "version": "1.5.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha1-rhO+Zq3kL1vg5IfjRfzjCl5bXl8=", - "requires": { - "element-size": "^1.1.1" - } - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "requires": { - "rsvp": "^4.8.4" - } - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", - "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chain-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz", - "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg==" - }, - "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" - } - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "chevrotain": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-6.5.0.tgz", - "integrity": "sha512-BwqQ/AgmKJ8jcMEjaSnfMybnKMgGTrtDKowfTP3pX4jwVy0kNjRsT/AP6h+wC3+3NC+X8X15VWBnTCQlX+wQFg==", - "optional": true, - "requires": { - "regexp-to-ast": "0.4.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "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==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "clamp": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=" - }, - "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==", - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "requires": { - "source-map": "~0.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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=" - }, - "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" - } - }, - "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" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", - "requires": { - "for-own": "^0.1.3", - "is-plain-object": "^2.0.1", - "kind-of": "^3.0.2", - "lazy-cache": "^1.0.3", - "shallow-clone": "^0.1.2" - } - }, - "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "color-alpha": { - "version": "1.0.4", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "requires": { - "color-parse": "^1.3.8" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-id": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "requires": { - "clamp": "^1.0.1" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-normalize": { - "version": "1.5.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", - "requires": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" - } - }, - "color-parse": { - "version": "1.3.8", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/color-parse/-/color-parse-1.3.8.tgz", - "integrity": "sha512-1Y79qFv0n1xair3lNMTNeoFvmc3nirMVBij24zbs1f13+7fPpQClMg5b4AuKXLt3szj7BRlHMCXHplkce6XlmA==", - "requires": { - "color-name": "^1.0.0", - "defined": "^1.0.0", - "is-plain-obj": "^1.1.0" - } - }, - "color-rgba": { - "version": "2.1.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "requires": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" - } - }, - "color-space": { - "version": "1.16.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", - "requires": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" - } - }, - "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "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" - } - }, - "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" - }, - "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==" - }, - "common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "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==" - }, - "compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "requires": { - "arity-n": "^1.0.4" - } - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "compute-dims": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/compute-dims/-/compute-dims-1.1.0.tgz", - "integrity": "sha512-YHMiIKjH/8Eom8zATk3g8/lH3HxGCZcVQyEfEoVrfWI7od/WRpTgRGShnei3jArYSx77mQqPxZNokjGHCdLfxg==", - "requires": { - "utils-copy": "^1.0.0", - "validate.io-array": "^1.0.6", - "validate.io-matrix-like": "^1.0.2", - "validate.io-ndarray-like": "^1.0.0", - "validate.io-positive-integer": "^1.0.0" - } - }, - "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==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "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==" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true - }, - "const-max-uint32": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/const-max-uint32/-/const-max-uint32-1.0.2.tgz", - "integrity": "sha1-8Am7YjDmeO2HTdLWqc2ePL+rtnY=" - }, - "const-pinf-float64": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/const-pinf-float64/-/const-pinf-float64-1.0.0.tgz", - "integrity": "sha1-9u+w15+cCYbT558pI6v5twtj1yY=" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "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==" - } - } - }, - "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==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "requires": { - "is-what": "^3.14.1" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "requires": { - "toggle-selection": "^1.0.6" - } - }, - "core-js": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.0.tgz", - "integrity": "sha512-YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==" - }, - "core-js-compat": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", - "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-js-pure": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.0.tgz", - "integrity": "sha512-VaJUunCZLnxuDbo1rNOzwbet9E1K9joiXS5+DQMPtgxd24wfsZbJZMMfQLGYMlCUvSxLfsRUUhoOR2x28mFfeg==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "country-regex": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha1-UcMz3N8Sknt+XuucEKyBEqYSCJY=" - }, - "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==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "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==" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-react-class": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", - "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "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==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "css-blank-pseudo": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", - "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", - "requires": { - "postcss": "^7.0.5" - } - }, - "css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "requires": { - "tiny-invariant": "^1.0.6" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-font": { - "version": "1.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "requires": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" - } - }, - "css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss=" - }, - "css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA=" - }, - "css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ=" - }, - "css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc=" - }, - "css-global-keywords": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=" - }, - "css-has-pseudo": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", - "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "css-loader": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz", - "integrity": "sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==", - "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.23", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.1.1", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.0.2", - "schema-utils": "^2.6.0" - }, - "dependencies": { - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - } - } - }, - "css-prefers-color-scheme": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", - "requires": { - "postcss": "^7.0.5" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-system-font-keywords": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0=" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-vendor": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", - "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", - "requires": { - "@babel/runtime": "^7.8.3", - "is-in-browser": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "csscolorparser": { - "version": "1.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" - }, - "cssdb": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", - "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", - "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", - "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - } - } - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, - "cssstyle": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", - "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", - "requires": { - "cssom": "0.3.x" - } - }, - "csstype": { - "version": "2.6.19", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.19.tgz", - "integrity": "sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/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-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-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/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": { - "version": "1.4.5", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "d3-geo": { - "version": "1.12.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "requires": { - "d3-array": "1" - } - }, - "d3-geo-projection": { - "version": "2.9.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", - "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", - "requires": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.12.0", - "resolve": "^1.1.10" - } - }, - "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" - } - }, - "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-quadtree": { - "version": "1.0.7", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "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" - } - }, - "d3-time": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "d3-time-format": { - "version": "2.3.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "requires": { - "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-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" - } - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "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" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - }, - "dependencies": { - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "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=" - }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "deep-diff": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", - "integrity": "sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ=" - }, - "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==", - "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" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "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==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "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==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "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==", - "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==", - "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==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "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==" - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "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=" - } - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "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=" - }, - "detect-kerning": { - "version": "2.1.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true - }, - "detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" - }, - "diff-sequences": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", - "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "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==" - } - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - } - }, - "dnd-core": { - "version": "10.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/dnd-core/-/dnd-core-10.0.2.tgz", - "integrity": "sha512-PrxEjxF0+6Y1n1n1Z9hSWZ1tvnDXv9syL+BccV1r1RC08uWNsyetf8AnWmUF3NgYPwy0HKQJwTqGkZK+1NlaFA==", - "requires": { - "@react-dnd/asap": "^4.0.0", - "@react-dnd/invariant": "^2.0.0", - "redux": "^4.0.4" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "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=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.3.0.tgz", - "integrity": "sha512-PzwHEmsRP3IGY4gv/Ug+rMeaTIyTJvadCb+ujYXYeIylbHJezIyNToe8KfEgHTCEYyC+/bUghYOGg8yMGlZ6vA==" - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" - } - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - } - } - }, - "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==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "requires": { - "webidl-conversions": "^4.0.2" - }, - "dependencies": { - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - } - } - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - } - } - }, - "dompurify": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.5.tgz", - "integrity": "sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==" - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - }, - "dependencies": { - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - } - } - }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "draft-convert": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/draft-convert/-/draft-convert-2.1.12.tgz", - "integrity": "sha512-6Bt338J+ZA00OLlzHipd0ZcQCCrVEM0vCyXb/eDlLdY89mmQ4XWkflSD9vql8TzVJ5ENk4s8cywMO9YTaTnZyg==", - "requires": { - "@babel/runtime": "^7.5.5", - "immutable": "~3.7.4", - "invariant": "^2.2.1" - } - }, - "draft-js": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.11.7.tgz", - "integrity": "sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==", - "requires": { - "fbjs": "^2.0.0", - "immutable": "~3.7.4", - "object-assign": "^4.1.1" - } - }, - "draftjs-to-html": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/draftjs-to-html/-/draftjs-to-html-0.9.1.tgz", - "integrity": "sha512-fFstE6+IayaVFBEvaFt/wN8vdj8FsTRzij7dy7LI9QIwf5LgfHFi9zSpvCg+feJ2tbYVqHxUkjcibwpsTpgFVQ==" - }, - "draw-svg-path": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha1-bxFtli3TFLmepTTW9Y3WbNvWk3k=", - "requires": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" - } - }, - "dtype": { - "version": "2.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=" - }, - "dup": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/dup/-/dup-1.0.0.tgz", - "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=" - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "earcut": { - "version": "2.2.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/earcut/-/earcut-2.2.3.tgz", - "integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug==" - }, - "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" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.4.67", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.67.tgz", - "integrity": "sha512-A6a2jEPLueEDfb7kvh7/E94RKKnIb01qL+4I7RFxtajmo+G9F5Ei7HgY5PRbQ4RDrh6DGDW66P0hD5XI2nRAcg==" - }, - "element-size": { - "version": "1.1.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha1-ZOXxWdlxIWMYRby67K8nnDm1404=" - }, - "elementary-circuits-directed-graph": { - "version": "1.3.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", - "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", - "requires": { - "strongly-connected-components": "^1.0.1" - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emitter-component": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", - "integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", - "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", - "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", - "ws": "~8.2.3" - }, - "dependencies": { - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==" - } - } - }, - "engine.io-client": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.1.1.tgz", - "integrity": "sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g==", - "requires": { - "@socket.io/component-emitter": "~3.0.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", - "has-cors": "1.1.0", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~8.2.3", - "xmlhttprequest-ssl": "~2.0.0", - "yeast": "0.1.2" - }, - "dependencies": { - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==" - } - } - }, - "engine.io-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", - "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", - "requires": { - "@socket.io/base64-arraybuffer": "~1.0.2" - } - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "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=" - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "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", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "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" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "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": { - "minimist": "^1.2.5" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" - }, - "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==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "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" - } - }, - "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==" - } - } - }, - "eslint-config-airbnb": { - "version": "18.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz", - "integrity": "sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^14.2.1", - "object.assign": "^4.1.2", - "object.entries": "^1.1.2" - } - }, - "eslint-config-airbnb-base": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", - "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.2" - } - }, - "eslint-config-react-app": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", - "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", - "requires": { - "confusing-browser-globals": "^1.0.9" - } - }, - "eslint-config-strongloop": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-strongloop/-/eslint-config-strongloop-2.1.0.tgz", - "integrity": "sha1-dj3Rmt/OiNewBR5uJV8a43eDtMY=", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-loader": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.3.tgz", - "integrity": "sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw==", - "requires": { - "fs-extra": "^8.1.0", - "loader-fs-cache": "^1.0.2", - "loader-utils": "^1.2.3", - "object-hash": "^2.0.1", - "schema-utils": "^2.6.1" - } - }, - "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, - "eslint-plugin-flowtype": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz", - "integrity": "sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ==", - "requires": { - "lodash": "^4.17.15" - } - }, - "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.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" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", - "dev": true, - "requires": { - "@babel/runtime": "^7.16.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.4", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", - "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - }, - "dependencies": { - "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 - }, - "jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", - "dev": true, - "requires": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" - } - } - } - }, - "eslint-plugin-react": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz", - "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "eslint-plugin-react-hooks": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", - "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==" - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "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" - } - }, - "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==" - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.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==" - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "requires": { - "original": "^1.0.0" - } - }, - "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==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "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": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "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==", - "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=", - "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=", - "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=" - } - } - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "optional": true - }, - "expect": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", - "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-styles": "^3.2.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.9.0" - } - }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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=" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - }, - "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==" - } - } - }, - "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - } - } - }, - "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=", - "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==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "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=", - "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=", - "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==", - "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==", - "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==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "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==" - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "falafel": { - "version": "2.2.4", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/falafel/-/falafel-2.2.4.tgz", - "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", - "requires": { - "acorn": "^7.1.1", - "foreach": "^2.0.5", - "isarray": "^2.0.1", - "object-keys": "^1.0.6" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "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": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "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=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - } - } - }, - "fast-isnumeric": { - "version": "1.1.4", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", - "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", - "requires": { - "is-string-blank": "^1.0.1" - } - }, - "fast-json-patch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz", - "integrity": "sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA==" - }, - "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": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", - "requires": { - "format": "^0.2.0" - } - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, - "fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "requires": { - "fbjs": "^3.0.0" - }, - "dependencies": { - "fbjs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.2.tgz", - "integrity": "sha512-qv+boqYndjElAJHNN3NoM8XuwQZ1j2m3kEvTgdle8IDjr6oUbkEpvABWtj/rQl3vq4ew7dnElBxL4YJAwTVqQQ==", - "requires": { - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - } - } - }, - "fbjs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-2.0.0.tgz", - "integrity": "sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==", - "requires": { - "core-js": "^3.6.4", - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-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": "4.3.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", - "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "filesize": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", - "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "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=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "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==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.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==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "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" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" - }, - "flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" - }, - "flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "requires": { - "dtype": "^2.0.0" - } - }, - "flip-pixels": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/flip-pixels/-/flip-pixels-1.0.2.tgz", - "integrity": "sha512-oXbJGbjDnfJRWPC7Va38EFhd+A8JWE5/hCiKcK8qjCdbLj9DTpsq6MEudwpRTH+V4qq+Jw7d3pUgQdSr3x3mTA==" - }, - "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==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "flux": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.3.tgz", - "integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==", - "requires": { - "fbemitter": "^3.0.0", - "fbjs": "^3.0.1" - }, - "dependencies": { - "fbjs": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.2.tgz", - "integrity": "sha512-qv+boqYndjElAJHNN3NoM8XuwQZ1j2m3kEvTgdle8IDjr6oUbkEpvABWtj/rQl3vq4ew7dnElBxL4YJAwTVqQQ==", - "requires": { - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - } - } - }, - "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" - }, - "font-atlas": { - "version": "2.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/font-atlas/-/font-atlas-2.1.0.tgz", - "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", - "requires": { - "css-font": "^1.0.0" - } - }, - "font-measure": { - "version": "1.2.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/font-measure/-/font-measure-1.2.2.tgz", - "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", - "requires": { - "css-font": "^1.2.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "fork-ts-checker-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", - "requires": { - "babel-code-frame": "^6.22.0", - "chalk": "^2.4.1", - "chokidar": "^3.3.0", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - } - }, - "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" - } - }, - "form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" - }, - "format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=" - }, - "formdata-node": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.2.tgz", - "integrity": "sha512-k7lYJyzDOSL6h917favP8j1L0/wNyylzU+x+1w4p5haGVHNlP58dbpdJhiCUsDbWsa9HwEtLp89obQgXl2e0qg==", - "requires": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.1" - }, - "dependencies": { - "web-streams-polyfill": { - "version": "4.0.0-beta.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz", - "integrity": "sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ==" - } - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "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==", - "optional": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-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=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "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.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "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=" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "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==" - }, - "geojson-vt": { - "version": "3.2.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-canvas-context": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/get-canvas-context/-/get-canvas-context-1.0.2.tgz", - "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM=" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "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" - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "optional": true - }, - "gl": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/gl/-/gl-4.9.2.tgz", - "integrity": "sha512-lLYaicQxsRPxOnKWX9pIGmtKRuw0epvI089yl9uBvemYxR9xE01eRuXJgje1U0/06Df7bdOmmcW87IPOsu52Ow==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "bit-twiddle": "^1.0.2", - "glsl-tokenizer": "^2.0.2", - "nan": "^2.15.0", - "node-abi": "^2.30.1", - "node-gyp": "^7.1.2", - "prebuild-install": "^5.3.6" - } - }, - "gl-mat4": { - "version": "1.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/gl-mat4/-/gl-mat4-1.2.0.tgz", - "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" - }, - "gl-matrix": { - "version": "3.4.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/gl-matrix/-/gl-matrix-3.4.3.tgz", - "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" - }, - "gl-text": { - "version": "1.3.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/gl-text/-/gl-text-1.3.1.tgz", - "integrity": "sha512-/f5gcEMiZd+UTBJLTl3D+CkCB/0UFGTx3nflH8ZmyWcLkZhsZ1+Xx5YYkw2rgWAzgPeE35xCqBuHSoMKQVsR+w==", - "requires": { - "bit-twiddle": "^1.0.2", - "color-normalize": "^1.5.0", - "css-font": "^1.2.0", - "detect-kerning": "^2.1.2", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "font-atlas": "^2.1.0", - "font-measure": "^1.2.2", - "gl-util": "^3.1.2", - "is-plain-obj": "^1.1.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "parse-unit": "^1.0.1", - "pick-by-alias": "^1.2.0", - "regl": "^2.0.0", - "to-px": "^1.0.1", - "typedarray-pool": "^1.1.0" - } - }, - "gl-util": { - "version": "3.1.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/gl-util/-/gl-util-3.1.3.tgz", - "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", - "requires": { - "is-browser": "^2.0.1", - "is-firefox": "^1.0.3", - "is-plain-obj": "^1.1.0", - "number-is-integer": "^1.0.1", - "object-assign": "^4.1.0", - "pick-by-alias": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "gl-wiretap": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/gl-wiretap/-/gl-wiretap-0.6.2.tgz", - "integrity": "sha512-fxy1XGiPkfzK+T3XKDbY7yaqMBmozCGvAFyTwaZA3imeZH83w7Hr3r3bYlMRWIyzMI/lDUvUMM/92LE2OwqFyQ==", - "optional": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "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==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - } - } - }, - "glsl-inject-defines": { - "version": "1.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", - "integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=", - "requires": { - "glsl-token-inject-block": "^1.0.0", - "glsl-token-string": "^1.0.1", - "glsl-tokenizer": "^2.0.2" - } - }, - "glsl-resolve": { - "version": "0.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-resolve/-/glsl-resolve-0.0.1.tgz", - "integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=", - "requires": { - "resolve": "^0.6.1", - "xtend": "^2.1.2" - }, - "dependencies": { - "resolve": { - "version": "0.6.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/resolve/-/resolve-0.6.3.tgz", - "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=" - }, - "xtend": { - "version": "2.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=" - } - } - }, - "glsl-token-assignments": { - "version": "2.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", - "integrity": "sha1-pdgqt4SZwuimuDy2lJXm5mXOAZ8=" - }, - "glsl-token-defines": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", - "integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=", - "requires": { - "glsl-tokenizer": "^2.0.0" - } - }, - "glsl-token-depth": { - "version": "1.1.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", - "integrity": "sha1-I8XjDuK9JViEtKKLyFC495HpXYQ=" - }, - "glsl-token-descope": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", - "integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=", - "requires": { - "glsl-token-assignments": "^2.0.0", - "glsl-token-depth": "^1.1.0", - "glsl-token-properties": "^1.0.0", - "glsl-token-scope": "^1.1.0" - } - }, - "glsl-token-inject-block": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", - "integrity": "sha1-4QFfWYDBCRgkraomJfHf3ovQADQ=" - }, - "glsl-token-properties": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", - "integrity": "sha1-SD3D2Dnw1LXGFx0VkfJJvlPCip4=" - }, - "glsl-token-scope": { - "version": "1.1.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", - "integrity": "sha1-oXKOeN8kRE+cuT/RjvD3VQOmQ7E=" - }, - "glsl-token-string": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-string/-/glsl-token-string-1.0.1.tgz", - "integrity": "sha1-WUQdL4V958NEnJRWZgIezjWOSOw=" - }, - "glsl-token-whitespace-trim": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", - "integrity": "sha1-RtHf6Yx1vX1QTAXX0RsbPpzJOxA=" - }, - "glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "requires": { - "through2": "^0.6.3" - } - }, - "glslify": { - "version": "7.1.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "requires": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - }, - "dependencies": { - "bl": { - "version": "2.2.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "glslify-bundle": { - "version": "5.1.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glslify-bundle/-/glslify-bundle-5.1.1.tgz", - "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", - "requires": { - "glsl-inject-defines": "^1.0.1", - "glsl-token-defines": "^1.0.0", - "glsl-token-depth": "^1.1.1", - "glsl-token-descope": "^1.0.2", - "glsl-token-scope": "^1.1.1", - "glsl-token-string": "^1.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glsl-tokenizer": "^2.0.2", - "murmurhash-js": "^1.0.0", - "shallow-copy": "0.0.1" - } - }, - "glslify-deps": { - "version": "1.3.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "requires": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "gpu-mock.js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/gpu-mock.js/-/gpu-mock.js-1.3.1.tgz", - "integrity": "sha512-+lbp8rQ0p1nTa6Gk6HoLiw4yM6JTpql82U+nCF3sZbX4FJWP9PzzF1018dW8K+pbmqRmhLHbn6Bjc6i6tgUpbA==", - "optional": true - }, - "gpu.js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gpu.js/-/gpu.js-2.3.0.tgz", - "integrity": "sha512-4maf/y6AFb97WspNF0L121GgnwoVC5OIbbLTp0eFMg76jcDr/TuXr93HOLGaGnwTHXjD/e8pRc+olZaFXqkKsg==", - "optional": true, - "requires": { - "acorn": "^7.1.0", - "gl": "^4.4.0", - "gl-wiretap": "^0.6.2", - "gpu-mock.js": "^1.1.1" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "grid-index": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "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==" - }, - "handsontable": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/handsontable/-/handsontable-9.0.2.tgz", - "integrity": "sha512-okj4OP7oWcI+oX9MtJuqrB1j40yPN+UZGC7m6VfnjR7+qa7HLELDLSpICOV1U0g9uFsMml2kqT72Fuh99oBHXg==", - "requires": { - "@types/pikaday": "1.7.4", - "core-js": "^3.0.0", - "dompurify": "^2.1.1", - "hyperformula": "0.6.2", - "moment": "2.24.0", - "numbro": "2.1.2", - "pikaday": "1.8.0" - }, - "dependencies": { - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" - } - } - }, - "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" - } - }, - "harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "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=" - } - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "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=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-hover": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/has-hover/-/has-hover-1.0.1.tgz", - "integrity": "sha1-PZdDeusZnGK4rAisvcU9O8UsF/c=", - "requires": { - "is-browser": "^2.0.1" - } - }, - "has-passive-events": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/has-passive-events/-/has-passive-events-1.0.0.tgz", - "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", - "requires": { - "is-browser": "^2.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "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==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "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==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "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==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" - }, - "hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" - }, - "highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" - }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "hsluv": { - "version": "0.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/hsluv/-/hsluv-0.0.3.tgz", - "integrity": "sha1-gpEH2vtKn4tSoYCe0C4JHq3mdUw=" - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "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==" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - } - } - }, - "html-parse-stringify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", - "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", - "requires": { - "void-elements": "3.1.0" - } - }, - "html-webpack-plugin": { - "version": "4.0.0-beta.11", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz", - "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==", - "requires": { - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.15", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, - "dependencies": { - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - }, - "dependencies": { - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "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==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.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==", - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "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": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "hyperformula": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/hyperformula/-/hyperformula-0.6.2.tgz", - "integrity": "sha512-loYQhPW7CAWmtjz+XLEKo/TUTvABQLbW596BVAGkT81xRs/J7Qqr0a1Wy38VlaMBkO0m45Ry97pPFQUeBckhaA==", - "optional": true, - "requires": { - "chevrotain": "^6.5.0", - "core-js": "^3.6.4", - "gpu.js": "2.3.0", - "regenerator-runtime": "^0.13.3", - "tiny-emitter": "^2.1.0", - "unorm": "^1.6.0" - } - }, - "hyphenate-style-name": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", - "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" - }, - "i18next": { - "version": "19.9.2", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-19.9.2.tgz", - "integrity": "sha512-0i6cuo6ER6usEOtKajUUDj92zlG+KArFia0857xxiEHAQcUwh/RtOQocui1LPJwunSYT574Pk64aNva1kwtxZg==", - "requires": { - "@babel/runtime": "^7.12.0" - } - }, - "i18next-browser-languagedetector": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-4.3.1.tgz", - "integrity": "sha512-KIToAzf8zwWvacgnRwJp63ase26o24AuNUlfNVJ5YZAFmdGhsJpmFClxXPuk9rv1FMI4lnc8zLSqgZPEZMrW4g==", - "requires": { - "@babel/runtime": "^7.5.5" - } - }, - "i18next-xhr-backend": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/i18next-xhr-backend/-/i18next-xhr-backend-3.2.2.tgz", - "integrity": "sha512-OtRf2Vo3IqAxsttQbpjYnmMML12IMB5e0fc5B7qKJFLScitYaXa1OhMX0n0X/3vrfFlpHL9Ro/H+ps4Ej2j7QQ==", - "requires": { - "@babel/runtime": "^7.5.5" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "requires": { - "postcss": "^7.0.14" - } - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - }, - "image-palette": { - "version": "2.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/image-palette/-/image-palette-2.1.0.tgz", - "integrity": "sha512-3ImSEWD26+xuQFdP0RWR4WSXadZwvgrFhjGNpMEapTG1tf2XrBFS2dlKK5hNgH4UIaSQlSUFRn1NeA+zULIWbQ==", - "requires": { - "color-id": "^1.1.0", - "pxls": "^2.0.0", - "quantize": "^1.0.2" - } - }, - "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 - }, - "immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" - }, - "immutable": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", - "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "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==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "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==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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" - } - } - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "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=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "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==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-base64": { - "version": "0.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-base64/-/is-base64-0.1.0.tgz", - "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-blob": { - "version": "2.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-blob/-/is-blob-2.1.0.tgz", - "integrity": "sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw==" - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-browser": { - "version": "2.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", - "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", - "requires": { - "is-object": "^1.0.1", - "is-window": "^1.0.2" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" - }, - "is-firefox": { - "version": "1.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-firefox/-/is-firefox-1.0.3.tgz", - "integrity": "sha1-KioVZ3g6QX9uFYMjEI84YbCRhWI=" - }, - "is-float-array": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-float-array/-/is-float-array-1.0.0.tgz", - "integrity": "sha512-4ew1Sx6B6kEAl3T3NOM0yB94J3NZnBdNt4paw0e8nY73yHHTeTEhyQ3Lj7EQEnv5LD+GxNTaT4L46jcKjjpLiQ==" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" - }, - "is-iexplorer": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-iexplorer/-/is-iexplorer-1.0.0.tgz", - "integrity": "sha1-HXK8ZtP+Iur2Fw3ajPEJQySM/HY=" - }, - "is-in-browser": { - "version": "1.1.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" - }, - "is-mobile": { - "version": "2.2.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-mobile/-/is-mobile-2.2.2.tgz", - "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, - "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==" - }, - "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==", - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "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==", - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "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=" - }, - "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==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-string-blank": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, - "is-svg-path": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/is-svg-path/-/is-svg-path-1.0.2.tgz", - "integrity": "sha1-d6tZDBKz0gNI5cehPQBAyHeE3aA=" - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "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-window": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", - "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=" - }, - "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==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "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==" - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "requires": { - "html-escaper": "^2.0.0" - } - }, - "jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", - "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", - "requires": { - "import-local": "^2.0.0", - "jest-cli": "^24.9.0" - }, - "dependencies": { - "jest-cli": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", - "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", - "requires": { - "@jest/core": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "import-local": "^2.0.0", - "is-ci": "^2.0.0", - "jest-config": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "prompts": "^2.0.1", - "realpath-native": "^1.1.0", - "yargs": "^13.3.0" - } - } - } - }, - "jest-changed-files": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", - "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", - "requires": { - "@jest/types": "^24.9.0", - "execa": "^1.0.0", - "throat": "^4.0.0" - } - }, - "jest-config": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", - "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^24.9.0", - "@jest/types": "^24.9.0", - "babel-jest": "^24.9.0", - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^24.9.0", - "jest-environment-node": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "micromatch": "^3.1.10", - "pretty-format": "^24.9.0", - "realpath-native": "^1.1.0" - } - }, - "jest-diff": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", - "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", - "requires": { - "chalk": "^2.0.1", - "diff-sequences": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-docblock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", - "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", - "requires": { - "detect-newline": "^2.1.0" - } - }, - "jest-each": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", - "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", - "requires": { - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-environment-jsdom": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", - "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0", - "jsdom": "^11.5.1" - } - }, - "jest-environment-jsdom-fourteen": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-1.0.1.tgz", - "integrity": "sha512-DojMX1sY+at5Ep+O9yME34CdidZnO3/zfPh8UW+918C5fIZET5vCjfkegixmsi7AtdYfkr4bPlIzmWnlvQkP7Q==", - "requires": { - "@jest/environment": "^24.3.0", - "@jest/fake-timers": "^24.3.0", - "@jest/types": "^24.3.0", - "jest-mock": "^24.0.0", - "jest-util": "^24.0.0", - "jsdom": "^14.1.0" - }, - "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" - }, - "jsdom": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", - "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", - "requires": { - "abab": "^2.0.0", - "acorn": "^6.0.4", - "acorn-globals": "^4.3.0", - "array-equal": "^1.0.0", - "cssom": "^0.3.4", - "cssstyle": "^1.1.1", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.0", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.1.3", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.5", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.5.0", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^6.1.2", - "xml-name-validator": "^3.0.0" - } - }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "jest-environment-node": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", - "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", - "requires": { - "@jest/environment": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/types": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-util": "^24.9.0" - } - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" - }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "dependencies": { - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - } - } - }, - "jest-jasmine2": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", - "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^24.9.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "pretty-format": "^24.9.0", - "throat": "^4.0.0" - } - }, - "jest-leak-detector": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", - "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", - "requires": { - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "requires": { - "@jest/types": "^24.9.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" - }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==" - }, - "jest-resolve": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", - "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", - "requires": { - "@jest/types": "^24.9.0", - "browser-resolve": "^1.11.3", - "chalk": "^2.0.1", - "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" - } - }, - "jest-resolve-dependencies": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", - "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", - "requires": { - "@jest/types": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-snapshot": "^24.9.0" - } - }, - "jest-runner": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", - "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "chalk": "^2.4.2", - "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-docblock": "^24.3.0", - "jest-haste-map": "^24.9.0", - "jest-jasmine2": "^24.9.0", - "jest-leak-detector": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "jest-runtime": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.6.0", - "source-map-support": "^0.5.6", - "throat": "^4.0.0" - } - }, - "jest-runtime": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", - "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", - "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.9.0", - "@jest/source-map": "^24.3.0", - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "chalk": "^2.0.1", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "jest-config": "^24.9.0", - "jest-haste-map": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.9.0", - "jest-snapshot": "^24.9.0", - "jest-util": "^24.9.0", - "jest-validate": "^24.9.0", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "strip-bom": "^3.0.0", - "yargs": "^13.3.0" - } - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" - }, - "jest-snapshot": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", - "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^24.9.0", - "chalk": "^2.0.1", - "expect": "^24.9.0", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-resolve": "^24.9.0", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^24.9.0", - "semver": "^6.2.0" - }, - "dependencies": { - "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": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "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": { - "minimist": "^1.2.5" - } - } - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } - }, - "jest-watch-typeahead": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz", - "integrity": "sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.1", - "jest-regex-util": "^24.9.0", - "jest-watcher": "^24.3.0", - "slash": "^3.0.0", - "string-length": "^3.1.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - } - }, - "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" - } - } - } - }, - "jest-watcher": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", - "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", - "requires": { - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/yargs": "^13.0.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "jest-util": "^24.9.0", - "string-length": "^2.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - } - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "js-cookie": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", - "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" - }, - "js-file-download": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.12.tgz", - "integrity": "sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", - "requires": { - "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", - "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", - "domexception": "^1.0.1", - "escodegen": "^1.9.1", - "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", - "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", - "w3c-hr-time": "^1.0.1", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "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==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "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==" - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jss": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz", - "integrity": "sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw==", - "requires": { - "@babel/runtime": "^7.3.1", - "csstype": "^3.0.2", - "is-in-browser": "^1.1.3", - "tiny-warning": "^1.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" - } - } - }, - "jss-plugin-camel-case": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz", - "integrity": "sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww==", - "requires": { - "@babel/runtime": "^7.3.1", - "hyphenate-style-name": "^1.0.3", - "jss": "10.9.0" - } - }, - "jss-plugin-default-unit": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz", - "integrity": "sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0" - } - }, - "jss-plugin-global": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz", - "integrity": "sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0" - } - }, - "jss-plugin-nested": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz", - "integrity": "sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-props-sort": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz", - "integrity": "sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0" - } - }, - "jss-plugin-rule-value-function": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz", - "integrity": "sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-vendor-prefixer": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz", - "integrity": "sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA==", - "requires": { - "@babel/runtime": "^7.3.1", - "css-vendor": "^2.0.8", - "jss": "10.9.0" - } - }, - "jsx-ast-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", - "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", - "requires": { - "array-includes": "^3.1.1", - "object.assign": "^4.1.0" - } - }, - "jwt-decode": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" - }, - "kdbush": { - "version": "3.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/kdbush/-/kdbush-3.0.0.tgz", - "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - } - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", - "dev": true - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dev": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" - }, - "less": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", - "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", - "dev": true, - "requires": { - "copy-anything": "^2.0.1", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "native-request": "^1.0.5", - "source-map": "~0.6.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "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 - } - } - }, - "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" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "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==" - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "requires": { - "leven": "^3.1.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", - "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "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": { - "minimist": "^1.2.5" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - } - } - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "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==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-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==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha1-JI42By7ekGUB11lmIAqG2riyMXA=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "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==", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "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==", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" - }, - "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==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "lowlight": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", - "requires": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "requires": { - "es5-ext": "~0.10.2" - } - }, - "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==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "requires": { - "tmpl": "1.0.5" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-limit": { - "version": "0.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", - "requires": { - "once": "~1.3.0" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1" - } - } - } - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "mapbox-gl": { - "version": "1.10.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/mapbox-gl/-/mapbox-gl-1.10.1.tgz", - "integrity": "sha512-0aHt+lFUpYfvh0kMIqXqNXqoYMuhuAsMlw87TbhWrw78Tx2zfuPI0Lx31/YPUgJ+Ire0tzQ4JnuBL7acDNXmMg==", - "requires": { - "@mapbox/geojson-rewind": "^0.5.0", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "minimist": "^1.2.5", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.0.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - } - }, - "material-colors": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", - "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==" - }, - "math-log2": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/math-log2/-/math-log2-1.0.1.tgz", - "integrity": "sha1-+4lBvl9evol55xjmJzsXjlhpRWU=" - }, - "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==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, - "memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - }, - "dependencies": { - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - } - } - }, - "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=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "merge-deep": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", - "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", - "requires": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "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==" - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^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==" - } - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" - }, - "mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "requires": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - } - }, - "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==", - "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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "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=" - }, - "minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "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" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "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==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true - }, - "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==", - "optional": true - }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "mouse-change": { - "version": "1.4.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/mouse-change/-/mouse-change-1.4.0.tgz", - "integrity": "sha1-wrd+W/o0pDzhRFyBV6Tk3JiVwU8=", - "requires": { - "mouse-event": "^1.0.0" - } - }, - "mouse-event": { - "version": "1.0.5", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/mouse-event/-/mouse-event-1.0.5.tgz", - "integrity": "sha1-s3ie23EJmX1aky0dAdqhVDpQFzI=" - }, - "mouse-event-offset": { - "version": "3.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", - "integrity": "sha1-39hqbiSMa6jK1TuQXVA3ogY+mYQ=" - }, - "mouse-wheel": { - "version": "1.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/mouse-wheel/-/mouse-wheel-1.2.0.tgz", - "integrity": "sha1-bSkDseqPtI5h8bU7kDZ3PwQs21w=", - "requires": { - "right-now": "^1.0.0", - "signum": "^1.0.0", - "to-px": "^1.0.1" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "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=" - }, - "mumath": { - "version": "3.3.4", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/mumath/-/mumath-3.3.4.tgz", - "integrity": "sha1-SNSg8P2MrU57Mglu6JsWGmPTC78=", - "requires": { - "almost-equal": "^1.1.0" - } - }, - "murmurhash-js": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "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" - }, - "dependencies": { - "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==" - } - } - }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "optional": true - }, - "native-promise-only": { - "version": "0.8.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/native-promise-only/-/native-promise-only-0.8.1.tgz", - "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=" - }, - "native-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz", - "integrity": "sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==", - "dev": true, - "optional": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "needle": { - "version": "2.9.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "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==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "optional": true, - "requires": { - "semver": "^5.4.1" - } - }, - "node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "optional": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "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==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==" - } - } - } - } - }, - "node-notifier": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz", - "integrity": "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==", - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", - "optional": true - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-svg-path": { - "version": "0.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", - "integrity": "sha1-RWNg5g7Odfvve11+FgSA5//Rb+U=" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "notistack": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/notistack/-/notistack-1.0.10.tgz", - "integrity": "sha512-z0y4jJaVtOoH3kc3GtNUlhNTY+5LE04QDeLVujX3VPhhzg67zw055mZjrBF+nzpv3V9aiPNph1EgRU4+t8kQTQ==", - "requires": { - "clsx": "^1.1.0", - "hoist-non-react-statics": "^3.3.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=", - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "number-is-integer": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/number-is-integer/-/number-is-integer-1.0.1.tgz", - "integrity": "sha1-5ZvKFy/+0nMY55x862y3LAlbIVI=", - "requires": { - "is-finite": "^1.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true - }, - "numbro": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/numbro/-/numbro-2.1.2.tgz", - "integrity": "sha512-7w833BxZmKGLE9HI0aREtNVRVH6WTYUUlWf4qgA5gKNhPQ4F/MRZ14sc0v8eoLORprk9ZTVwYaLwj8N3Zgxwiw==", - "requires": { - "bignumber.js": "^8.0.1" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "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": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "dependencies": { - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - } - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "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==", - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-each-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", - "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", - "requires": { - "p-reduce": "^1.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" - }, - "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==", - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "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": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - } - } - }, - "parenthesis": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", - "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==" - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-rect": { - "version": "1.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/parse-rect/-/parse-rect-1.2.0.tgz", - "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", - "requires": { - "pick-by-alias": "^1.2.0" - } - }, - "parse-svg-path": { - "version": "0.1.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes=" - }, - "parse-unit": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/parse-unit/-/parse-unit-1.0.1.tgz", - "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8=" - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" - }, - "parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" - }, - "parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "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==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-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=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "pbf": { - "version": "3.2.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "requires": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pick-by-alias": { - "version": "1.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pikaday": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/pikaday/-/pikaday-1.8.0.tgz", - "integrity": "sha512-SgGxMYX0NHj9oQnMaSyAipr2gOrbB4Lfs/TJTb6H6hRHs39/5c5VZi73Q8hr53+vWjdn6HzkWcj8Vtl3c9ziaA==" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" - }, - "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==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - } - }, - "plotly.js": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.9.0.tgz", - "integrity": "sha512-A3kqjGq2PCeL/z19BNvg5YD712mWCMaRW2WbmYA+qpdbNPUjBNjMK/MWXDi7pV53CUM2ZKAqre4j6Uy7bIoAGA==", - "requires": { - "@plotly/d3": "3.8.0", - "@plotly/d3-sankey": "0.7.2", - "@plotly/d3-sankey-circular": "0.33.1", - "@turf/area": "^6.4.0", - "@turf/bbox": "^6.4.0", - "@turf/centroid": "^6.0.2", - "canvas-fit": "^1.5.0", - "color-alpha": "1.0.4", - "color-normalize": "1.5.0", - "color-parse": "1.3.8", - "color-rgba": "2.1.1", - "country-regex": "^1.1.0", - "d3-force": "^1.2.1", - "d3-format": "^1.4.5", - "d3-geo": "^1.12.1", - "d3-geo-projection": "^2.9.0", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^1.4.0", - "d3-time": "^1.1.0", - "d3-time-format": "^2.2.3", - "fast-isnumeric": "^1.1.4", - "gl-mat4": "^1.2.0", - "gl-text": "^1.3.1", - "glslify": "^7.1.1", - "has-hover": "^1.0.1", - "has-passive-events": "^1.0.0", - "is-mobile": "^2.2.2", - "mapbox-gl": "1.10.1", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "native-promise-only": "^0.8.1", - "parse-svg-path": "^0.1.2", - "polybooljs": "^1.2.0", - "probe-image-size": "^7.2.3", - "regl": "^2.1.0", - "regl-error2d": "^2.0.12", - "regl-line2d": "^3.1.2", - "regl-scatter2d": "^3.2.8", - "regl-splom": "^1.0.14", - "strongly-connected-components": "^1.0.1", - "superscript-text": "^1.0.0", - "svg-path-sdf": "^1.1.3", - "tinycolor2": "^1.4.2", - "to-px": "1.0.1", - "topojson-client": "^3.1.0", - "webgl-context": "^2.2.0", - "world-calendars": "^1.0.3" - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" - }, - "pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", - "requires": { - "ts-pnp": "^1.1.6" - } - }, - "polybooljs": { - "version": "1.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/polybooljs/-/polybooljs-1.2.0.tgz", - "integrity": "sha1-tDkMLgedTCYtOyUExiiNlbp6R1g=" - }, - "popper.js": { - "version": "1.16.1-lts", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", - "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "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": { - "minimist": "^1.2.5" - } - } - } - }, - "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=" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", - "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^6.0.2" - } - }, - "postcss-browser-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz", - "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==", - "requires": { - "postcss": "^7" - } - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-color-functional-notation": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-gray": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", - "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-hex-alpha": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", - "requires": { - "postcss": "^7.0.14", - "postcss-values-parser": "^2.0.1" - } - }, - "postcss-color-mod-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", - "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-color-rebeccapurple": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-custom-media": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", - "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", - "requires": { - "postcss": "^7.0.14" - } - }, - "postcss-custom-properties": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", - "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", - "requires": { - "postcss": "^7.0.17", - "postcss-values-parser": "^2.0.1" - } - }, - "postcss-custom-selectors": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-dir-pseudo-class": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-double-position-gradients": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", - "requires": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-env-function": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", - "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", - "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-focus-visible": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-focus-within": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", - "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-font-variant": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", - "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-gap-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", - "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-image-set-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", - "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-initial": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", - "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-lab-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", - "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", - "requires": { - "@csstools/convert-colors": "^1.4.0", - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-logical": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", - "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-media-minmax": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "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==", - "requires": { - "postcss": "^7.0.5" - } - }, - "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==", - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "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==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "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==", - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "postcss-nesting": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", - "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-normalize": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz", - "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==", - "requires": { - "@csstools/normalize.css": "^10.1.0", - "browserslist": "^4.6.2", - "postcss": "^7.0.17", - "postcss-browser-comments": "^3.0.0", - "sanitize.css": "^10.0.0" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-overflow-shorthand": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-page-break": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", - "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-place": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", - "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", - "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" - } - }, - "postcss-preset-env": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", - "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", - "requires": { - "autoprefixer": "^9.6.1", - "browserslist": "^4.6.4", - "caniuse-lite": "^1.0.30000981", - "css-blank-pseudo": "^0.1.4", - "css-has-pseudo": "^0.10.0", - "css-prefers-color-scheme": "^3.1.1", - "cssdb": "^4.4.0", - "postcss": "^7.0.17", - "postcss-attribute-case-insensitive": "^4.0.1", - "postcss-color-functional-notation": "^2.0.1", - "postcss-color-gray": "^5.0.0", - "postcss-color-hex-alpha": "^5.0.3", - "postcss-color-mod-function": "^3.0.3", - "postcss-color-rebeccapurple": "^4.0.1", - "postcss-custom-media": "^7.0.8", - "postcss-custom-properties": "^8.0.11", - "postcss-custom-selectors": "^5.1.2", - "postcss-dir-pseudo-class": "^5.0.0", - "postcss-double-position-gradients": "^1.0.0", - "postcss-env-function": "^2.0.2", - "postcss-focus-visible": "^4.0.0", - "postcss-focus-within": "^3.0.0", - "postcss-font-variant": "^4.0.0", - "postcss-gap-properties": "^2.0.0", - "postcss-image-set-function": "^3.0.1", - "postcss-initial": "^3.0.0", - "postcss-lab-function": "^2.0.1", - "postcss-logical": "^3.0.0", - "postcss-media-minmax": "^4.0.0", - "postcss-nesting": "^7.0.0", - "postcss-overflow-shorthand": "^2.0.0", - "postcss-page-break": "^2.0.0", - "postcss-place": "^4.0.1", - "postcss-pseudo-class-any-link": "^6.0.0", - "postcss-replace-overflow-wrap": "^3.0.0", - "postcss-selector-matches": "^4.0.0", - "postcss-selector-not": "^4.0.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", - "requires": { - "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" - }, - "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-replace-overflow-wrap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", - "requires": { - "postcss": "^7.0.2" - } - }, - "postcss-safe-parser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", - "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-selector-matches": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "postcss-selector-not": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", - "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", - "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "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==" - }, - "postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "potpack": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/potpack/-/potpack-1.0.2.tgz", - "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==" - }, - "prebuild-install": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", - "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", - "optional": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true - }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - } - }, - "prismjs": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.26.0.tgz", - "integrity": "sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ==" - }, - "probe-image-size": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", - "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", - "requires": { - "lodash.merge": "^4.6.2", - "needle": "^2.5.2", - "stream-parser": "~0.3.1" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "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==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "requires": { - "xtend": "^4.0.0" - } - }, - "protocol-buffers-schema": { - "version": "3.6.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", - "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "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==", - "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==" - }, - "pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4=" - }, - "pxls": { - "version": "2.3.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/pxls/-/pxls-2.3.2.tgz", - "integrity": "sha512-pQkwgbLqWPcuES5iEmGa10OlCf5xG0blkIF3dg7PpRZShbTYcvAdfFfGL03SMrkaSUaa/V0UpN9HWg40O2AIIw==", - "requires": { - "arr-flatten": "^1.1.0", - "compute-dims": "^1.1.0", - "flip-pixels": "^1.0.2", - "is-browser": "^2.1.0", - "is-buffer": "^2.0.3", - "to-uint8": "^1.4.1" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - }, - "quantize": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/quantize/-/quantize-1.0.2.tgz", - "integrity": "sha1-0lrCAKd7bXD0ASfKFxoQ4zyFRt4=" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "quickselect": { - "version": "2.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "raf-schd": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-ace": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/react-ace/-/react-ace-8.1.0.tgz", - "integrity": "sha512-n3rm9gRNZjLGlXJQ587RASOQCPn6WlcV2gjRYwvG3gyVpBf4pY6lh/uI9tDkx2zYdEKJUfnGbTmzEGL5yyDWuw==", - "requires": { - "ace-builds": "^1.4.6", - "diff-match-patch": "^1.0.4", - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "prop-types": "^15.7.2" - } - }, - "react-app-polyfill": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz", - "integrity": "sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g==", - "requires": { - "core-js": "^3.5.0", - "object-assign": "^4.1.1", - "promise": "^8.0.3", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.3", - "whatwg-fetch": "^3.0.0" - }, - "dependencies": { - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "requires": { - "asap": "~2.0.6" - } - } - } - }, - "react-base16-styling": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", - "integrity": "sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw=", - "requires": { - "base16": "^1.0.0", - "lodash.curry": "^4.0.1", - "lodash.flow": "^3.3.0", - "pure-color": "^1.2.0" - } - }, - "react-beautiful-dnd": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz", - "integrity": "sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA==", - "requires": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - } - }, - "react-color": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.19.3.tgz", - "integrity": "sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==", - "requires": { - "@icons/material": "^0.2.4", - "lodash": "^4.17.15", - "lodash-es": "^4.17.15", - "material-colors": "^1.2.1", - "prop-types": "^15.5.10", - "reactcss": "^1.2.0", - "tinycolor2": "^1.4.1" - } - }, - "react-content-loader": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/react-content-loader/-/react-content-loader-6.1.0.tgz", - "integrity": "sha512-S4/+doQrNs0PGDgUYCGGfdFjGax8dMQzYkWcSSxfaUcUjFkbnikWARuX9lWkglocIVhxnn3lxNb6uEWFFUzNUw==" - }, - "react-copy-to-clipboard": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.3.tgz", - "integrity": "sha512-9S3j+m+UxDZOM0Qb8mhnT/rMR0NGSrj9A/073yz2DSxPMYhmYFBMYIdI2X4o8AjOjyFsSNxDRnCX6s/gRxpriw==", - "requires": { - "copy-to-clipboard": "^3", - "prop-types": "^15.5.8" - } - }, - "react-d3-graph": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-d3-graph/-/react-d3-graph-2.6.0.tgz", - "integrity": "sha512-U72didZuPuYEqAi1n2bJvnph+9MviIw2x9I0eoxb1IKk3cyEwsJV96n3RL72z/7HDsa1FOvDKuOJE7ujSNZB/Q==" - }, - "react-d3-tree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/react-d3-tree/-/react-d3-tree-3.2.1.tgz", - "integrity": "sha512-nS1enKAdmlxE8uzHgM1sOOsmPSsvU0OJiJ36z5QxU2YuqHY7iUmjIMdo1nzW0TMmd9FdK2vaC7EFswDoYUNhqw==", - "requires": { - "@bkrem/react-transition-group": "^1.3.1", - "@types/d3-hierarchy": "^1.1.8", - "clone": "^2.1.1", - "d3-hierarchy": "^1.1.9", - "d3-selection": "^1.4.2", - "d3-shape": "^1.3.7", - "d3-zoom": "^1.8.3", - "dequal": "^2.0.2", - "uuid": "^8.3.1" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, - "react-debounce-input": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.5.tgz", - "integrity": "sha512-WDc9nvZ8E/cT4nW1RlD/r+Nsc5Z5+Jmj2v9HT9RzsPtxkwRTQUBCKJvdt1fCYy5ME/nQPoqVYmWUWSv7whGmig==", - "requires": { - "lodash.debounce": "^4", - "prop-types": "^15.7.2" - } - }, - "react-dev-utils": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", - "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==", - "requires": { - "@babel/code-frame": "7.8.3", - "address": "1.1.2", - "browserslist": "4.10.0", - "chalk": "2.4.2", - "cross-spawn": "7.0.1", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.0.1", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "3.1.1", - "global-modules": "2.0.0", - "globby": "8.0.2", - "gzip-size": "5.1.1", - "immer": "1.10.0", - "inquirer": "7.0.4", - "is-root": "2.1.0", - "loader-utils": "1.2.3", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "react-error-overlay": "^6.0.7", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "browserslist": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", - "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", - "requires": { - "caniuse-lite": "^1.0.30001035", - "electron-to-chromium": "^1.3.378", - "node-releases": "^1.1.52", - "pkg-up": "^3.1.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" - }, - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "inquirer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", - "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "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" - } - } - } - }, - "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==" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" - }, - "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==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "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==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "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": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "strip-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" - } - } - } - }, - "react-dnd": { - "version": "10.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/react-dnd/-/react-dnd-10.0.2.tgz", - "integrity": "sha512-SC2Ymvntynhoqtf5zaFhZscm9xenCoMofilxPdlwUlaelAzmbl9fw82C4ZJ//+lNm3kWAKXjGDZg2/aWjKEAtg==", - "requires": { - "@react-dnd/shallowequal": "^2.0.0", - "@types/hoist-non-react-statics": "^3.3.1", - "dnd-core": "^10.0.2", - "hoist-non-react-statics": "^3.3.0" - } - }, - "react-dnd-html5-backend": { - "version": "10.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/react-dnd-html5-backend/-/react-dnd-html5-backend-10.0.2.tgz", - "integrity": "sha512-ny17gUdInZ6PIGXdzfwPhoztRdNVVvjoJMdG80hkDBamJBeUPuNF2Wv4D3uoQJLjXssX1+i9PhBqc7EpogClwQ==", - "requires": { - "dnd-core": "^10.0.2" - } - }, - "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" - }, - "react-hook-form": { - "version": "6.15.8", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-6.15.8.tgz", - "integrity": "sha512-prq82ofMbnRyj5wqDe8hsTRcdR25jQ+B8KtCS7BLCzjFHAwNuCjRwzPuP4eYLsEBjEIeYd6try+pdLdw0kPkpg==" - }, - "react-i18next": { - "version": "11.15.4", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.15.4.tgz", - "integrity": "sha512-jKJNAcVcbPGK+yrTcXhLblgPY16n6NbpZZL3Mk8nswj1v3ayIiUBVDU09SgqnT+DluyQBS97hwSvPU5yVFG0yg==", - "requires": { - "@babel/runtime": "^7.14.5", - "html-escaper": "^2.0.2", - "html-parse-stringify": "^3.0.1" - } - }, - "react-immutable-proptypes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.2.0.tgz", - "integrity": "sha512-Vf4gBsePlwdGvSZoLSBfd4HAP93HDauMY4fDjXhreg/vg6F3Fj/MXDNyTbltPC/xZKmZc+cjLu3598DdYK6sgQ==", - "requires": { - "invariant": "^2.2.2" - } - }, - "react-immutable-pure-component": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/react-immutable-pure-component/-/react-immutable-pure-component-1.2.4.tgz", - "integrity": "sha512-zPXaFWxaF4+ztVMFNMlCFkrhjpb9MPcL3JnXUpb6wKGF1+vBoSgClFbpbOsZAji7gm+RHBE24H44Lday2xxPjw==" - }, - "react-inspector": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-2.3.1.tgz", - "integrity": "sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q==", - "requires": { - "babel-runtime": "^6.26.0", - "is-dom": "^1.0.9", - "prop-types": "^15.6.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "react-json-view": { - "version": "1.21.3", - "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", - "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", - "requires": { - "flux": "^4.0.1", - "react-base16-styling": "^0.6.0", - "react-lifecycles-compat": "^3.0.4", - "react-textarea-autosize": "^8.3.2" - } - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-motion": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", - "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", - "requires": { - "performance-now": "^0.2.0", - "prop-types": "^15.5.8", - "raf": "^3.1.0" - }, - "dependencies": { - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" - } - } - }, - "react-plotly.js": { - "version": "2.5.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/react-plotly.js/-/react-plotly.js-2.5.1.tgz", - "integrity": "sha512-Oya14whSHvPsYXdI0nHOGs1pZhMzV2edV7HAW1xFHD58Y73m/LbG2Encvyz1tztL0vfjph0JNhiwO8cGBJnlhg==", - "requires": { - "prop-types": "^15.7.2" - } - }, - "react-redux": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.6.tgz", - "integrity": "sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==", - "requires": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "dependencies": { - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } - } - }, - "react-router": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.1.tgz", - "integrity": "sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "react-router-dom": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.0.tgz", - "integrity": "sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.1", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "react-router-redux": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-4.0.8.tgz", - "integrity": "sha1-InQDWWtRUeGCN32rg1tdRfD4BU4=" - }, - "react-scripts": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.4.tgz", - "integrity": "sha512-7J7GZyF/QvZkKAZLneiOIhHozvOMHey7hO9cdO9u68jjhGZlI8hDdOm6UyuHofn6Ajc9Uji5I6Psm/nKNuWdyw==", - "requires": { - "@babel/core": "7.9.0", - "@svgr/webpack": "4.3.3", - "@typescript-eslint/eslint-plugin": "^2.10.0", - "@typescript-eslint/parser": "^2.10.0", - "babel-eslint": "10.1.0", - "babel-jest": "^24.9.0", - "babel-loader": "8.1.0", - "babel-plugin-named-asset-import": "^0.3.6", - "babel-preset-react-app": "^9.1.2", - "camelcase": "^5.3.1", - "case-sensitive-paths-webpack-plugin": "2.3.0", - "css-loader": "3.4.2", - "dotenv": "8.2.0", - "dotenv-expand": "5.1.0", - "eslint": "^6.6.0", - "eslint-config-react-app": "^5.2.1", - "eslint-loader": "3.0.3", - "eslint-plugin-flowtype": "4.6.0", - "eslint-plugin-import": "2.20.1", - "eslint-plugin-jsx-a11y": "6.2.3", - "eslint-plugin-react": "7.19.0", - "eslint-plugin-react-hooks": "^1.6.1", - "file-loader": "4.3.0", - "fs-extra": "^8.1.0", - "fsevents": "2.1.2", - "html-webpack-plugin": "4.0.0-beta.11", - "identity-obj-proxy": "3.0.0", - "jest": "24.9.0", - "jest-environment-jsdom-fourteen": "1.0.1", - "jest-resolve": "24.9.0", - "jest-watch-typeahead": "0.4.2", - "mini-css-extract-plugin": "0.9.0", - "optimize-css-assets-webpack-plugin": "5.0.3", - "pnp-webpack-plugin": "1.6.4", - "postcss-flexbugs-fixes": "4.1.0", - "postcss-loader": "3.0.0", - "postcss-normalize": "8.0.1", - "postcss-preset-env": "6.7.0", - "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "^1.0.6", - "react-dev-utils": "^10.2.1", - "resolve": "1.15.0", - "resolve-url-loader": "3.1.2", - "sass-loader": "8.0.2", - "semver": "6.3.0", - "style-loader": "0.23.1", - "terser-webpack-plugin": "2.3.8", - "ts-pnp": "1.1.6", - "url-loader": "2.3.0", - "webpack": "4.42.0", - "webpack-dev-server": "3.11.0", - "webpack-manifest-plugin": "2.2.0", - "workbox-webpack-plugin": "4.3.1" - }, - "dependencies": { - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "eslint-plugin-import": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz", - "integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==", - "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", - "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", - "requires": { - "@babel/runtime": "^7.4.5", - "aria-query": "^3.0.0", - "array-includes": "^3.0.3", - "ast-types-flow": "^0.0.7", - "axobject-query": "^2.0.2", - "damerau-levenshtein": "^1.0.4", - "emoji-regex": "^7.0.2", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1" - } - }, - "eslint-plugin-react": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz", - "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==", - "requires": { - "array-includes": "^3.1.1", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.3", - "object.entries": "^1.1.1", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.15.1", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.2", - "xregexp": "^4.3.0" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "resolve": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", - "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "react-syntax-highlighter": { - "version": "15.4.5", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.4.5.tgz", - "integrity": "sha512-RC90KQTxZ/b7+9iE6s9nmiFLFjWswUcfULi4GwVzdFVKVMQySkJWBuOmJFfjwjMVCo0IUUuJrWebNKyviKpwLQ==", - "requires": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.4.1", - "lowlight": "^1.17.0", - "prismjs": "^1.25.0", - "refractor": "^3.2.0" - } - }, - "react-textarea-autosize": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz", - "integrity": "sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==", - "requires": { - "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.0.0", - "use-latest": "^1.0.0" - } - }, - "react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "react-tsparticles": { - "version": "1.40.2", - "resolved": "https://registry.npmjs.org/react-tsparticles/-/react-tsparticles-1.40.2.tgz", - "integrity": "sha512-Gak/vUvn3gh/fxVbQAdptQJ1FU8eY4PXzw1uVqtKBse2LJxJTOnrThW8foPUZP48/y5DeNbJoIqfMXwG4quBmg==", - "requires": { - "fast-deep-equal": "^3.1.3", - "tsparticles": "^1.40.2" - } - }, - "react-virtualized-auto-sizer": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", - "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==" - }, - "react-window": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.6.tgz", - "integrity": "sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==", - "requires": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - } - }, - "reactcss": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz", - "integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==", - "requires": { - "lodash": "^4.0.1" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", - "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", - "requires": { - "util.promisify": "^1.0.0" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "redux": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz", - "integrity": "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==", - "requires": { - "@babel/runtime": "^7.9.2" - } - }, - "redux-devtools-extension": { - "version": "2.13.9", - "resolved": "https://registry.npmjs.org/redux-devtools-extension/-/redux-devtools-extension-2.13.9.tgz", - "integrity": "sha512-cNJ8Q/EtjhQaZ71c8I9+BPySIBVEKssbPpskBfsXqb8HJ002A3KRVHfeRzwRo6mGPqsm7XuHTqNSNeS1Khig0A==" - }, - "redux-immutable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/redux-immutable/-/redux-immutable-3.1.0.tgz", - "integrity": "sha1-yvvWhuBxEmERm5wolgk13EeknQo=", - "requires": { - "immutable": "^3.8.1" - }, - "dependencies": { - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" - } - } - }, - "redux-logger": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-3.0.6.tgz", - "integrity": "sha1-91VZZvMJjzyIYExEnPC69XeCdL8=", - "requires": { - "deep-diff": "^0.3.5" - } - }, - "redux-mock-store": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.4.tgz", - "integrity": "sha512-xmcA0O/tjCLXhh9Fuiq6pMrJCwFRaouA8436zcikdIpYWWCjU76CRk+i2bHx8EeiSiMGnB85/lZdU3wIJVXHTA==", - "requires": { - "lodash.isplainobject": "^4.0.6" - } - }, - "redux-thunk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", - "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==" - }, - "refractor": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.5.0.tgz", - "integrity": "sha512-QwPJd3ferTZ4cSPPjdP5bsYHMytwWYnAN5EEnLtGvkqp/FCCnGsBgxrm9EuIDnjUC3Uc/kETtvVi7fSIVC74Dg==", - "requires": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.25.0" - }, - "dependencies": { - "prismjs": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", - "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==" - } - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "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==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" - }, - "regex-regex": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/regex-regex/-/regex-regex-1.0.0.tgz", - "integrity": "sha1-kEih6uuHD01IDavHb8Qs3MC8OnI=" - }, - "regexp-to-ast": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.4.0.tgz", - "integrity": "sha512-4qf/7IsIKfSNHQXSwial1IFmfM1Cc/whNBQqRwe0V2stPe7KmN1U0tWQiIx6JiirgSrisjE0eECdNf7Tav1Ntw==", - "optional": true - }, - "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "regl": { - "version": "2.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/regl/-/regl-2.1.0.tgz", - "integrity": "sha512-oWUce/aVoEvW5l2V0LK7O5KJMzUSKeiOwFuJehzpSFd43dO5spP9r+sSUfhKtsky4u6MCqWJaRL+abzExynfTg==" - }, - "regl-error2d": { - "version": "2.0.12", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/regl-error2d/-/regl-error2d-2.0.12.tgz", - "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", - "requires": { - "array-bounds": "^1.0.1", - "color-normalize": "^1.5.0", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "regl-line2d": { - "version": "3.1.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/regl-line2d/-/regl-line2d-3.1.2.tgz", - "integrity": "sha512-nmT7WWS/WxmXAQMkgaMKWXaVmwJ65KCrjbqHGOUjjqQi6shfT96YbBOvelXwO9hG7/hjvbzjtQ2UO0L3e7YaXQ==", - "requires": { - "array-bounds": "^1.0.1", - "array-find-index": "^1.0.2", - "array-normalize": "^1.1.4", - "color-normalize": "^1.5.0", - "earcut": "^2.1.5", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0" - } - }, - "regl-scatter2d": { - "version": "3.2.8", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/regl-scatter2d/-/regl-scatter2d-3.2.8.tgz", - "integrity": "sha512-bqrqJyeHkGBa9mEfuBnRd7FUtdtZ1l+gsM2C5Ugr1U3vJG5K3mdWdVWtOAllZ5FHHyWJV/vgjVvftgFUg6CDig==", - "requires": { - "@plotly/point-cluster": "^3.1.9", - "array-range": "^1.0.1", - "array-rearrange": "^2.2.2", - "clamp": "^1.0.1", - "color-id": "^1.1.0", - "color-normalize": "^1.5.0", - "color-rgba": "^2.1.1", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "image-palette": "^2.1.0", - "is-iexplorer": "^1.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.1.0", - "update-diff": "^1.1.0" - } - }, - "regl-splom": { - "version": "1.0.14", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/regl-splom/-/regl-splom-1.0.14.tgz", - "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", - "requires": { - "array-bounds": "^1.0.1", - "array-range": "^1.0.1", - "color-alpha": "^1.0.4", - "flatten-vertex-data": "^1.0.2", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "raf": "^3.4.1", - "regl-scatter2d": "^3.2.3" - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "remarkable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz", - "integrity": "sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==", - "requires": { - "argparse": "^1.0.10", - "autolinker": "^3.11.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=" - }, - "renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "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" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "reselect": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz", - "integrity": "sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==" - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "requires": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "resolve-url-loader": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", - "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", - "requires": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.21", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "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==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "postcss": { - "version": "7.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", - "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.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==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "requires": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" - } - } - }, - "rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "right-now": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg=" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - } - }, - "sanitize.css": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz", - "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg==" - }, - "sass-loader": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", - "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.2.3", - "neo-async": "^2.6.1", - "schema-utils": "^2.6.1", - "semver": "^6.3.0" - }, - "dependencies": { - "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==", - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.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==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "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==", - "requires": { - "kind-of": "^6.0.2" - } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", - "requires": { - "xmlchars": "^2.1.1" - } - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.14", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", - "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serialize-error": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-8.1.0.tgz", - "integrity": "sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==", - "requires": { - "type-fest": "^0.20.2" - }, - "dependencies": { - "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==" - } - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "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=", - "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=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "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=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^2.0.1", - "lazy-cache": "^0.2.3", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "requires": { - "is-buffer": "^1.0.2" - } - }, - "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" - } - } - }, - "shallow-copy": { - "version": "0.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "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=" - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "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==" - }, - "signum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", - "integrity": "sha1-dKfSvyogtA66FqkrFSEk8dVZ+nc=" - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "optional": true - }, - "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "optional": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "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" - }, - "dependencies": { - "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=" - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "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==", - "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=", - "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=", - "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=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "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==", - "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=", - "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==", - "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==", - "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==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "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==" - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - } - }, - "socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", - "requires": { - "accepts": "~1.3.4", - "base64id": "~2.0.0", - "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" - } - }, - "socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==" - }, - "socket.io-client": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.4.1.tgz", - "integrity": "sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ==", - "requires": { - "@socket.io/component-emitter": "~3.0.0", - "backo2": "~1.0.2", - "debug": "~4.3.2", - "engine.io-client": "~6.1.1", - "parseuri": "0.0.6", - "socket.io-parser": "~4.1.1" - }, - "dependencies": { - "socket.io-parser": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz", - "integrity": "sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA==", - "requires": { - "@socket.io/component-emitter": "~3.0.0", - "debug": "~4.3.1" - } - } - } - }, - "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", - "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", - "debug": "~4.3.1" - } - }, - "sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.4.0", - "websocket-driver": "0.6.5" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.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==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "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==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "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==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "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==", - "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.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "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": "7.1.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.1.tgz", - "integrity": "sha512-w+daCzXN89PseTL99MkA+fxJEcU3wfaE/ah0i0lnOlpG1CYLJ2ZjzEry68YBKfLs4JfoTShrTEsJkAZuNZ/stw==", - "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "stack-trace": { - "version": "0.0.9", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" - }, - "stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "static-eval": { - "version": "2.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/static-eval/-/static-eval-2.1.0.tgz", - "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", - "requires": { - "escodegen": "^1.11.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, - "stream": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", - "integrity": "sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=", - "requires": { - "emitter-component": "^1.1.1" - } - }, - "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==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "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==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.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==", - "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": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-parser": { - "version": "0.3.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", - "requires": { - "debug": "2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "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=" - }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", - "requires": { - "astral-regex": "^1.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=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string-split-by": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/string-split-by/-/string-split-by-1.0.0.tgz", - "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", - "requires": { - "parenthesis": "^3.1.5" - } - }, - "string-to-arraybuffer": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/string-to-arraybuffer/-/string-to-arraybuffer-1.0.2.tgz", - "integrity": "sha512-DaGZidzi93dwjQen5I2osxR9ERS/R7B1PFyufNMnzhj+fmlDQAc1DSDIJVJhgI8Oq221efIMbABUBdPHDRt43Q==", - "requires": { - "atob-lite": "^2.0.0", - "is-base64": "^0.1.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.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=", - "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=" - } - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", - "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", - "requires": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true - }, - "strongly-connected-components": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", - "integrity": "sha1-CSDitN9nyOrulsa2I0/inoc9upk=" - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "supercluster": { - "version": "7.1.4", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/supercluster/-/supercluster-7.1.4.tgz", - "integrity": "sha512-GhKkRM1jMR6WUwGPw05fs66pOFWhf59lXq+Q3J3SxPvhNcmgOtLRV6aVQPMRsmXdpaeFJGivt+t7QXUPL3ff4g==", - "requires": { - "kdbush": "^3.0.0" - } - }, - "superscript-text": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/superscript-text/-/superscript-text-1.0.0.tgz", - "integrity": "sha1-58snUlZzYN9QvrBhDOjfPXHY39g=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "svg-path-bounds": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", - "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", - "requires": { - "abs-svg-path": "^0.1.1", - "is-svg-path": "^1.0.1", - "normalize-svg-path": "^1.0.0", - "parse-svg-path": "^0.1.2" - }, - "dependencies": { - "normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "requires": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - } - } - }, - "svg-path-sdf": { - "version": "1.1.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", - "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", - "requires": { - "bitmap-sdf": "^1.0.0", - "draw-svg-path": "^1.0.0", - "is-svg-path": "^1.0.1", - "parse-svg-path": "^0.1.2", - "svg-path-bounds": "^1.0.1" - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "swagger-client": { - "version": "3.18.4", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.18.4.tgz", - "integrity": "sha512-Wj26oEctONq/u0uM+eSj18675YM5e2vFnx7Kr4neLeXEHKUsfceVQ/OdtrBXdrT3VbtdBbZfMTfl1JOBpix2MA==", - "requires": { - "@babel/runtime-corejs3": "^7.11.2", - "btoa": "^1.2.1", - "cookie": "~0.4.1", - "cross-fetch": "^3.1.5", - "deepmerge": "~4.2.2", - "fast-json-patch": "^3.0.0-1", - "form-data-encoder": "^1.4.3", - "formdata-node": "^4.0.0", - "is-plain-object": "^5.0.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "qs": "^6.10.2", - "traverse": "~0.6.6", - "url": "~0.11.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "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==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - } - } - }, - "swagger-ui-react": { - "version": "3.52.5", - "resolved": "https://registry.npmjs.org/swagger-ui-react/-/swagger-ui-react-3.52.5.tgz", - "integrity": "sha512-V2fidbSGCb6SmC1AyTXv6T8znWcLAjfVBs2CPTXUS7m7s//SqiRx3hXXPUNvGxKTEK76h+yvcBZf2GLD7kr63w==", - "requires": { - "@babel/runtime-corejs3": "^7.14.7", - "@braintree/sanitize-url": "^5.0.2", - "@kyleshockey/object-assign-deep": "^0.4.2", - "@kyleshockey/xml": "^1.0.2", - "base64-js": "^1.5.1", - "classnames": "^2.3.1", - "css.escape": "1.5.1", - "deep-extend": "0.6.0", - "dompurify": "^2.2.9", - "ieee754": "^1.2.1", - "immutable": "^3.x.x", - "js-file-download": "^0.4.12", - "js-yaml": "=4.1.0", - "lodash": "^4.17.21", - "memoizee": "^0.4.15", - "prop-types": "^15.7.2", - "randombytes": "^2.1.0", - "react-copy-to-clipboard": "5.0.3", - "react-debounce-input": "^3.2.3", - "react-immutable-proptypes": "2.2.0", - "react-immutable-pure-component": "^1.1.1", - "react-inspector": "^2.3.0", - "react-motion": "^0.5.2", - "react-redux": "=4.4.10", - "react-syntax-highlighter": "^15.4.4", - "redux": "=3.7.2", - "redux-immutable": "3.1.0", - "remarkable": "^2.0.1", - "reselect": "^4.0.0", - "serialize-error": "^8.1.0", - "sha.js": "^2.4.11", - "swagger-client": "^3.17.0", - "url-parse": "^1.5.2", - "xml-but-prettier": "^1.0.1", - "zenscroll": "^4.0.2" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "react-redux": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz", - "integrity": "sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg==", - "requires": { - "create-react-class": "^15.5.1", - "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.0.0", - "lodash": "^4.17.11", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2" - } - }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" - } - } - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "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" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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=" - }, - "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" - } - }, - "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" - } - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "optional": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "optional": true, - "requires": { - "bl": "^4.0.3", - "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==", - "optional": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "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==", - "optional": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, - "terser-webpack-plugin": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", - "integrity": "sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w==", - "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.3.1", - "jest-worker": "^25.4.0", - "p-limit": "^2.3.0", - "schema-utils": "^2.6.6", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.6.12", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.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==" - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.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==", - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "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==" - }, - "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==", - "requires": { - "find-up": "^4.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "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" - } - } - } - }, - "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", - "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "optional": true - }, - "tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "tinycolor2": { - "version": "1.4.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" - }, - "tinyqueue": { - "version": "2.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "to-array-buffer": { - "version": "3.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/to-array-buffer/-/to-array-buffer-3.2.0.tgz", - "integrity": "sha512-zN33mwi0gpL+7xW1ITLfJ48CEj6ZQW0ZAP0MU+2W3kEY0PAIncyuxmD4OqkUVhPAbTP7amq9j/iwvZKYS+lzSQ==", - "requires": { - "flatten-vertex-data": "^1.0.2", - "is-blob": "^2.0.1", - "string-to-arraybuffer": "^1.0.0" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "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=" - }, - "to-float32": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/to-float32/-/to-float32-1.1.0.tgz", - "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==" - }, - "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=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-px": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", - "integrity": "sha1-W7rtXl1PdkRbzJA8KTojB90yRkY=", - "requires": { - "parse-unit": "^1.0.1" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-uint8": { - "version": "1.4.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/to-uint8/-/to-uint8-1.4.1.tgz", - "integrity": "sha512-o+ochsMlTZyucbww8It401FC2Rx+OP2RpDeYbA6h+y9HgedDl1UjdsJ9CmzKEG7AFP9es5PmJ4eDWeeeXihESg==", - "requires": { - "arr-flatten": "^1.1.0", - "clamp": "^1.0.1", - "is-base64": "^0.1.0", - "is-float-array": "^1.0.0", - "to-array-buffer": "^3.0.0" - } - }, - "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "topojson-client": { - "version": "3.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "requires": { - "commander": "2" - } - }, - "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" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" - }, - "ts-pnp": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz", - "integrity": "sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ==" - }, - "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "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" - } - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "tsparticles": { - "version": "1.40.2", - "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.40.2.tgz", - "integrity": "sha512-EU+YnBibI5GD8QUZLYyG7U4p3AWQfzVyPuXXCQMhuqtiN8GConmYHHrFWjrRisduOK7ayLckRHnNpPQ3PcHYSQ==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "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": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "type-name": { - "version": "2.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/type-name/-/type-name-2.0.2.tgz", - "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-pool": { - "version": "1.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "requires": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" - }, - "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==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "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==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unorm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", - "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", - "optional": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "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=", - "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=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "update-diff": { - "version": "1.1.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/update-diff/-/update-diff-1.1.0.tgz", - "integrity": "sha1-9RAYLYHugZ+4LDprIrYrve2ngI8=" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "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=" - } - } - }, - "url-loader": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", - "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", - "requires": { - "loader-utils": "^1.2.3", - "mime": "^2.4.4", - "schema-utils": "^2.5.0" - } - }, - "url-parse": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz", - "integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "use-composed-ref": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.2.1.tgz", - "integrity": "sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw==" - }, - "use-isomorphic-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz", - "integrity": "sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==" - }, - "use-latest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.0.tgz", - "integrity": "sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==", - "requires": { - "use-isomorphic-layout-effect": "^1.0.0" - } - }, - "use-memo-one": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", - "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "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=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-copy": { - "version": "1.1.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/utils-copy/-/utils-copy-1.1.1.tgz", - "integrity": "sha1-biuXmCqozXPhGCo+b4vsPA9AWKc=", - "requires": { - "const-pinf-float64": "^1.0.0", - "object-keys": "^1.0.9", - "type-name": "^2.0.0", - "utils-copy-error": "^1.0.0", - "utils-indexof": "^1.0.0", - "utils-regex-from-string": "^1.0.0", - "validate.io-array": "^1.0.3", - "validate.io-buffer": "^1.0.1", - "validate.io-nonnegative-integer": "^1.0.0" - } - }, - "utils-copy-error": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/utils-copy-error/-/utils-copy-error-1.0.1.tgz", - "integrity": "sha1-eR3jk8DwmJCv1Z88vqY18HmpT6U=", - "requires": { - "object-keys": "^1.0.9", - "utils-copy": "^1.1.0" - } - }, - "utils-indexof": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/utils-indexof/-/utils-indexof-1.0.0.tgz", - "integrity": "sha1-IP6r8J7xAYtSNkPoOA57yD7GG1w=", - "requires": { - "validate.io-array-like": "^1.0.1", - "validate.io-integer-primitive": "^1.0.0" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "utils-regex-from-string": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/utils-regex-from-string/-/utils-regex-from-string-1.0.0.tgz", - "integrity": "sha1-/hopCfjeD/DVGCyA+8ZU1qaH0Yk=", - "requires": { - "regex-regex": "^1.0.0", - "validate.io-string-primitive": "^1.0.0" - } - }, - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate.io-array": { - "version": "1.0.6", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=" - }, - "validate.io-array-like": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-array-like/-/validate.io-array-like-1.0.2.tgz", - "integrity": "sha1-evn363tRcVvrIhVmjsXM5U+t21o=", - "requires": { - "const-max-uint32": "^1.0.2", - "validate.io-integer-primitive": "^1.0.0" - } - }, - "validate.io-buffer": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-buffer/-/validate.io-buffer-1.0.2.tgz", - "integrity": "sha1-hS1nNAIZFNXROvwyUxdh43IO1E4=" - }, - "validate.io-integer": { - "version": "1.0.5", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", - "requires": { - "validate.io-number": "^1.0.3" - } - }, - "validate.io-integer-primitive": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-integer-primitive/-/validate.io-integer-primitive-1.0.0.tgz", - "integrity": "sha1-qaoBA1X+hoHA/qbBp0rSQZyt3cY=", - "requires": { - "validate.io-number-primitive": "^1.0.0" - } - }, - "validate.io-matrix-like": { - "version": "1.0.2", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-matrix-like/-/validate.io-matrix-like-1.0.2.tgz", - "integrity": "sha1-XsMqddCInaxzbepovdYUWxVe38M=" - }, - "validate.io-ndarray-like": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-ndarray-like/-/validate.io-ndarray-like-1.0.0.tgz", - "integrity": "sha1-2KOw7RZbvx0vwNAHMnDPpVIpWRk=" - }, - "validate.io-nonnegative-integer": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-nonnegative-integer/-/validate.io-nonnegative-integer-1.0.0.tgz", - "integrity": "sha1-gGkkOgjF+Y6VQTySnf17GPP28p8=", - "requires": { - "validate.io-integer": "^1.0.5" - } - }, - "validate.io-number": { - "version": "1.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=" - }, - "validate.io-number-primitive": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-number-primitive/-/validate.io-number-primitive-1.0.0.tgz", - "integrity": "sha1-0uAfICmJNp3PEVVElWQgOv5YTlU=" - }, - "validate.io-positive-integer": { - "version": "1.0.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-positive-integer/-/validate.io-positive-integer-1.0.0.tgz", - "integrity": "sha1-ftLQO0wnVYzGagCqsPDpIYFKZYI=", - "requires": { - "validate.io-integer": "^1.0.5" - } - }, - "validate.io-string-primitive": { - "version": "1.0.1", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/validate.io-string-primitive/-/validate.io-string-primitive-1.0.1.tgz", - "integrity": "sha1-uBNbn7E3K94C/dU60dDM1t55j+4=" - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "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" - }, - "dependencies": { - "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=" - } - } - }, - "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==" - }, - "void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=" - }, - "vt-pbf": { - "version": "3.1.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/vt-pbf/-/vt-pbf-3.1.3.tgz", - "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", - "requires": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.2.1" - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", - "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", - "requires": { - "domexception": "^1.0.1", - "webidl-conversions": "^4.0.2", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - } - } - }, - "wait-for-expect": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-3.0.2.tgz", - "integrity": "sha512-cfS1+DZxuav1aBYbaO/kE06EOS8yRw7qOFoD3XtjTkYvCvh3zUvNST8DXK/nPaeqIzIv3P3kL3lRJn8iwOiSag==" - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "requires": { - "makeerror": "1.0.12" - } - }, - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "optional": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "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" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "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=", - "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=", - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "optional": 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==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "weak-map": { - "version": "1.0.5", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/weak-map/-/weak-map-1.0.5.tgz", - "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" - }, - "web-streams-polyfill": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-2.1.1.tgz", - "integrity": "sha512-dlNpL2aab3g8CKfGz6rl8FNmGaRWLLn2g/DtSc9IjB30mEdE6XxzPfPSig5BwGSzI+oLxHyETrQGKjrVVhbLCg==" - }, - "webgl-context": { - "version": "2.2.0", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/webgl-context/-/webgl-context-2.2.0.tgz", - "integrity": "sha1-jzfXJXz23xzQpJ5qextyG5TMhqA=", - "requires": { - "get-canvas-context": "^1.0.1" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "webpack": { - "version": "4.42.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", - "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.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.1", - "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.6.0", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "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==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "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": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "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==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "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==", - "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" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "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" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "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=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "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==" - }, - "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=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "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==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "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==", - "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==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.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==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "webpack-manifest-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", - "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", - "requires": { - "fs-extra": "^7.0.0", - "lodash": ">=3.5 <5", - "object.entries": "^1.1.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "requires": { - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "optional": true - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "workbox-background-sync": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", - "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-broadcast-update": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", - "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-build": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", - "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", - "requires": { - "@babel/runtime": "^7.3.4", - "@hapi/joi": "^15.0.0", - "common-tags": "^1.8.0", - "fs-extra": "^4.0.2", - "glob": "^7.1.3", - "lodash.template": "^4.4.0", - "pretty-bytes": "^5.1.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "workbox-background-sync": "^4.3.1", - "workbox-broadcast-update": "^4.3.1", - "workbox-cacheable-response": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-expiration": "^4.3.1", - "workbox-google-analytics": "^4.3.1", - "workbox-navigation-preload": "^4.3.1", - "workbox-precaching": "^4.3.1", - "workbox-range-requests": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1", - "workbox-streams": "^4.3.1", - "workbox-sw": "^4.3.1", - "workbox-window": "^4.3.1" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "workbox-cacheable-response": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", - "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-core": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", - "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" - }, - "workbox-expiration": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", - "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-google-analytics": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", - "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", - "requires": { - "workbox-background-sync": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1" - } - }, - "workbox-navigation-preload": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", - "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-precaching": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", - "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-range-requests": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", - "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-routing": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", - "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-strategies": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", - "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-streams": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", - "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-sw": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", - "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==" - }, - "workbox-webpack-plugin": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz", - "integrity": "sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==", - "requires": { - "@babel/runtime": "^7.0.0", - "json-stable-stringify": "^1.0.1", - "workbox-build": "^4.3.1" - } - }, - "workbox-window": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", - "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "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==", - "requires": { - "errno": "~0.1.7" - } - }, - "worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "requires": { - "microevent.ts": "~0.1.1" - } - }, - "world-calendars": { - "version": "1.0.3", - "resolved": "https://devin-depot.rte-france.com/repository/npm-all/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha1-slxQMrokEo/8QdCfr0pewbnBQzU=", - "requires": { - "object-assign": "^4.1.0" - } - }, - "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==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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=" - }, - "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" - } - }, - "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" - } - } - } - }, - "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" - }, - "dependencies": { - "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": { - "minimist": "^1.2.5" - } - } - } - }, - "write-file-atomic": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", - "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xml-but-prettier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz", - "integrity": "sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM=", - "requires": { - "repeat-string": "^1.5.2" - } - }, - "xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "requires": { - "sax": "^1.2.4" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==" - }, - "xregexp": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.4.1.tgz", - "integrity": "sha512-2u9HwfadaJaY9zHtRRnH6BY6CQVNQKkYm3oLtC9gJXXzfsbACg5X5e4EZZGVAH+YIfa+QA9lsFQTTe3HURF3ag==", - "requires": { - "@babel/runtime-corejs3": "^7.12.1" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "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" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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=" - }, - "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" - } - }, - "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" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "zenscroll": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/zenscroll/-/zenscroll-4.0.2.tgz", - "integrity": "sha1-6NV3TRwHOKR7z6hynzcS4t7d6yU=" - } - } -} diff --git a/webapp/package.json b/webapp/package.json index caa107670d..fcca81b604 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -1,144 +1,137 @@ { "name": "antares-web", - "version": "2.3.2", + "version": "2.4.0", "private": true, "dependencies": { - "@fortawesome/fontawesome-svg-core": "~1.2.36", - "@fortawesome/free-brands-svg-icons": "^5.15.4", - "@fortawesome/free-regular-svg-icons": "^5.15.4", - "@fortawesome/free-solid-svg-icons": "^5.15.4", - "@fortawesome/react-fontawesome": "^0.1.16", - "@handsontable/react": "^9.0.2", - "@material-ui/core": "^4.12.3", - "@material-ui/icons": "^4.11.2", - "@material-ui/lab": "^4.0.0-alpha.60", - "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.5.0", - "@testing-library/user-event": "^7.2.1", - "@types/draft-convert": "^2.1.4", - "@types/draft-js": "^0.11.6", - "@types/draftjs-to-html": "^0.8.1", - "@types/jest": "^24.9.1", - "@types/lodash": "^4.14.176", - "@types/node": "^12.20.36", - "@types/react": "^16.14.20", - "@types/react-dom": "^16.9.14", - "@types/react-redux": "^7.1.20", - "@types/react-router": "^5.1.17", - "@types/react-router-redux": "^5.0.20", - "@types/redux": "^3.6.0", - "@types/redux-logger": "^3.0.9", - "@types/redux-thunk": "^2.1.0", - "@types/uuid": "^7.0.5", - "@types/xml-js": "^1.0.0", - "ace-builds": "^1.4.13", - "axios": "^0.21.4", - "classnames": "^2.3.1", - "clsx": "^1.1.1", - "debug": "^4.3.2", - "dotenv": "^8.6.0", - "dotenv-expand": "^5.1.0", - "draft-convert": "^2.1.12", - "draft-js": "^0.11.7", - "draftjs-to-html": "^0.9.1", - "handsontable": "^9.0.2", - "i18next": "^19.9.2", - "i18next-browser-languagedetector": "^4.3.1", - "i18next-xhr-backend": "^3.2.2", - "js-cookie": "^2.2.1", - "jwt-decode": "^3.1.2", - "lodash": "^4.17.21", - "moment": "^2.29.1", - "notistack": "^1.0.10", - "plotly.js": "^2.5.1", - "react": "^16.14.0", - "react-ace": "^8.1.0", - "react-app-polyfill": "^1.0.6", - "react-beautiful-dnd": "^13.1.0", - "react-color": "^2.19.3", - "react-content-loader": "^6.0.3", - "react-d3-graph": "^2.6.0", - "react-d3-tree": "^3.1.1", - "react-dnd": "^10.0.2", - "react-dnd-html5-backend": "^10.0.2", - "react-dom": "^16.14.0", - "react-hook-form": "^6.15.8", - "react-i18next": "^11.13.0", - "react-json-view": "^1.21.3", - "react-plotly.js": "^2.5.1", - "react-redux": "^7.2.6", - "react-router": "^5.2.1", - "react-router-dom": "^5.3.0", - "react-router-redux": "^4.0.8", - "react-scripts": "^3.4.0", - "react-tsparticles": "^1.39.0", - "react-virtualized-auto-sizer": "^1.0.6", - "react-window": "^1.8.6", - "redux": "^4.1.2", - "redux-devtools-extension": "^2.13.9", - "redux-logger": "^3.0.6", - "redux-mock-store": "^1.5.4", - "redux-thunk": "^2.4.0", - "reselect": "^4.1.2", - "socket.io": "^4.3.1", - "socket.io-client": "^4.3.2", - "swagger-ui-react": "^3.52.5", - "uuid": "^7.0.3", - "web-streams-polyfill": "^2.1.1", - "xml-js": "^1.6.11" + "@emotion/react": "11.9.0", + "@emotion/styled": "11.8.1", + "@handsontable/react": "11.1.0", + "@hookform/resolvers": "2.8.8", + "@mui/icons-material": "5.6.0", + "@mui/lab": "5.0.0-alpha.76", + "@mui/material": "5.6.0", + "@testing-library/jest-dom": "5.16.4", + "@testing-library/react": "13.0.0", + "@testing-library/user-event": "14.0.4", + "@types/d3": "5.16.4", + "@types/draft-convert": "2.1.4", + "@types/draft-js": "0.11.9", + "@types/draftjs-to-html": "0.8.1", + "@types/jest": "27.4.1", + "@types/node": "16.11.20", + "@types/react": "17.0.38", + "@types/react-d3-graph": "2.6.3", + "@types/react-dom": "17.0.11", + "@types/xml-js": "1.0.0", + "assert": "2.0.0", + "axios": "0.26.1", + "buffer": "6.0.3", + "crypto-browserify": "3.12.0", + "d3": "5.16.0", + "debug": "4.3.4", + "downshift": "6.1.7", + "draft-convert": "2.1.12", + "draft-js": "0.11.7", + "draftjs-to-html": "0.9.1", + "fs": "0.0.1-security", + "handsontable": "11.1.0", + "https-browserify": "1.0.0", + "i18next": "21.6.14", + "i18next-browser-languagedetector": "6.1.4", + "i18next-xhr-backend": "3.2.2", + "immer": "9.0.12", + "js-cookie": "3.0.1", + "jwt-decode": "3.1.2", + "lodash": "4.17.21", + "moment": "2.29.2", + "notistack": "2.0.3", + "os": "0.1.2", + "os-browserify": "0.3.0", + "plotly.js": "2.11.1", + "ramda": "0.28.0", + "ramda-adjunct": "3.0.0", + "react": "17.0.2", + "react-beautiful-dnd": "13.1.0", + "react-color": "2.19.3", + "react-d3-graph": "2.6.0", + "react-dom": "17.0.2", + "react-dropzone": "12.1.0", + "react-hook-form": "7.29.0", + "react-i18next": "11.16.2", + "react-json-view": "1.21.3", + "react-plotly.js": "2.5.1", + "react-redux": "7.2.8", + "react-router": "6.3.0", + "react-router-dom": "6.3.0", + "react-scripts": "5.0.0", + "react-split": "2.0.14", + "react-tsparticles": "1.43.1", + "react-use": "17.3.2", + "react-virtualized-auto-sizer": "1.0.6", + "react-window": "1.8.6", + "redux": "4.1.2", + "redux-devtools-extension": "2.13.9", + "redux-thunk": "2.4.1", + "reselect": "4.1.5", + "stream-http": "3.2.0", + "swagger-ui-react": "4.10.3", + "ts-toolbelt": "9.6.0", + "url": "0.11.0", + "uuid": "8.3.2", + "web-vitals": "2.1.4", + "xml-js": "1.6.11", + "yup": "0.32.11" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "check": "bash -c scripts/test_extracted_srclib.sh", + "start": "react-app-rewired start", + "build": "react-app-rewired build", "lint": "eslint . --ext .ts,.tsx,.js,.jsx", - "test": " react-scripts test", - "eject": "react-scripts eject" + "test": "react-app-rewired test", + "eject": "react-app-rewired eject" }, "browserslist": { "production": [ ">0.2%", "not dead", - "not op_mini all", - "ie 11" + "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", - "last 1 safari version", - "ie 11" + "last 1 safari version" ] }, "proxy": "http://localhost:8080", "homepage": "/", "devDependencies": { - "@types/classnames": "^2.3.1", - "@types/debug": "^4.1.7", - "@types/js-cookie": "^2.2.7", - "@types/react-beautiful-dnd": "^13.1.2", - "@types/react-color": "^3.0.6", - "@types/react-d3-graph": "^2.6.2", - "@types/react-plotly.js": "^2.5.0", - "@types/react-resizable": "^1.7.4", - "@types/react-router-dom": "^5.3.2", - "@types/react-virtualized": "^9.21.14", - "@types/react-virtualized-auto-sizer": "^1.0.1", - "@types/react-window": "^1.8.5", - "@types/socket.io-client": "^1.4.36", - "@types/swagger-ui-react": "^3.35.3", - "@typescript-eslint/eslint-plugin": "^2.34.0", - "@typescript-eslint/parser": "^2.34.0", - "babel-plugin-import": "^1.13.3", - "eslint": "^6.8.0", - "eslint-config-airbnb": "^18.2.1", - "eslint-config-strongloop": "^2.1.0", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.26.1", - "eslint-plugin-react-hooks": "^1.7.0", - "less": "^3.13.1", - "less-loader": "^5.0.0", - "prettier": "^2.4.1", - "typescript": "^3.9.10" + "@types/debug": "4.1.7", + "@types/js-cookie": "3.0.1", + "@types/lodash": "4.14.181", + "@types/ramda": "0.28.9", + "@types/react-beautiful-dnd": "13.1.2", + "@types/react-color": "3.0.6", + "@types/react-plotly.js": "2.5.0", + "@types/react-virtualized-auto-sizer": "1.0.1", + "@types/react-window": "1.8.5", + "@types/redux-logger": "3.0.9", + "@types/swagger-ui-react": "4.1.1", + "@types/uuid": "8.3.4", + "@typescript-eslint/eslint-plugin": "5.18.0", + "@typescript-eslint/parser": "5.18.0", + "cross-env": "^7.0.3", + "eslint": "8.12.0", + "eslint-config-airbnb": "19.0.4", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-import": "2.26.0", + "eslint-plugin-jsx-a11y": "6.5.1", + "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-react": "7.29.4", + "eslint-plugin-react-hooks": "4.4.0", + "husky": "7.0.4", + "prettier": "2.6.2", + "process": "0.11.10", + "react-app-rewired": "2.2.1", + "stream-browserify": "3.0.0", + "typescript": "4.6.3" } } diff --git a/webapp/public/font-inter/inter.css b/webapp/public/font-inter/inter.css index f450010124..1cb9bf22f6 100644 --- a/webapp/public/font-inter/inter.css +++ b/webapp/public/font-inter/inter.css @@ -1,154 +1,154 @@ @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 100; font-display: swap; src: url("Inter-Thin.woff2?v=3.19") format("woff2"), - url("Inter-Thin.woff?v=3.19") format("woff"); + url("Inter-Thin.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 100; font-display: swap; src: url("Inter-ThinItalic.woff2?v=3.19") format("woff2"), - url("Inter-ThinItalic.woff?v=3.19") format("woff"); + url("Inter-ThinItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 200; font-display: swap; src: url("Inter-ExtraLight.woff2?v=3.19") format("woff2"), - url("Inter-ExtraLight.woff?v=3.19") format("woff"); + url("Inter-ExtraLight.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 200; font-display: swap; src: url("Inter-ExtraLightItalic.woff2?v=3.19") format("woff2"), - url("Inter-ExtraLightItalic.woff?v=3.19") format("woff"); + url("Inter-ExtraLightItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 300; font-display: swap; src: url("Inter-Light.woff2?v=3.19") format("woff2"), - url("Inter-Light.woff?v=3.19") format("woff"); + url("Inter-Light.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 300; font-display: swap; src: url("Inter-LightItalic.woff2?v=3.19") format("woff2"), - url("Inter-LightItalic.woff?v=3.19") format("woff"); + url("Inter-LightItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 400; font-display: swap; src: url("Inter-Regular.woff2?v=3.19") format("woff2"), - url("Inter-Regular.woff?v=3.19") format("woff"); + url("Inter-Regular.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 400; font-display: swap; src: url("Inter-Italic.woff2?v=3.19") format("woff2"), - url("Inter-Italic.woff?v=3.19") format("woff"); + url("Inter-Italic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 500; font-display: swap; src: url("Inter-Medium.woff2?v=3.19") format("woff2"), - url("Inter-Medium.woff?v=3.19") format("woff"); + url("Inter-Medium.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 500; font-display: swap; src: url("Inter-MediumItalic.woff2?v=3.19") format("woff2"), - url("Inter-MediumItalic.woff?v=3.19") format("woff"); + url("Inter-MediumItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 600; font-display: swap; src: url("Inter-SemiBold.woff2?v=3.19") format("woff2"), - url("Inter-SemiBold.woff?v=3.19") format("woff"); + url("Inter-SemiBold.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 600; font-display: swap; src: url("Inter-SemiBoldItalic.woff2?v=3.19") format("woff2"), - url("Inter-SemiBoldItalic.woff?v=3.19") format("woff"); + url("Inter-SemiBoldItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 700; font-display: swap; src: url("Inter-Bold.woff2?v=3.19") format("woff2"), - url("Inter-Bold.woff?v=3.19") format("woff"); + url("Inter-Bold.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 700; font-display: swap; src: url("Inter-BoldItalic.woff2?v=3.19") format("woff2"), - url("Inter-BoldItalic.woff?v=3.19") format("woff"); + url("Inter-BoldItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 800; font-display: swap; src: url("Inter-ExtraBold.woff2?v=3.19") format("woff2"), - url("Inter-ExtraBold.woff?v=3.19") format("woff"); + url("Inter-ExtraBold.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 800; font-display: swap; src: url("Inter-ExtraBoldItalic.woff2?v=3.19") format("woff2"), - url("Inter-ExtraBoldItalic.woff?v=3.19") format("woff"); + url("Inter-ExtraBoldItalic.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: normal; + font-family: "Inter"; + font-style: normal; font-weight: 900; font-display: swap; src: url("Inter-Black.woff2?v=3.19") format("woff2"), - url("Inter-Black.woff?v=3.19") format("woff"); + url("Inter-Black.woff?v=3.19") format("woff"); } @font-face { - font-family: 'Inter'; - font-style: italic; + font-family: "Inter"; + font-style: italic; font-weight: 900; font-display: swap; src: url("Inter-BlackItalic.woff2?v=3.19") format("woff2"), - url("Inter-BlackItalic.woff?v=3.19") format("woff"); + url("Inter-BlackItalic.woff?v=3.19") format("woff"); } /* ------------------------------------------------------- @@ -161,23 +161,22 @@ Usage: } */ @font-face { - font-family: 'Inter var'; + font-family: "Inter var"; font-weight: 100 900; font-display: swap; font-style: normal; - font-named-instance: 'Regular'; + font-named-instance: "Regular"; src: url("Inter-roman.var.woff2?v=3.19") format("woff2"); } @font-face { - font-family: 'Inter var'; + font-family: "Inter var"; font-weight: 100 900; font-display: swap; font-style: italic; - font-named-instance: 'Italic'; + font-named-instance: "Italic"; src: url("Inter-italic.var.woff2?v=3.19") format("woff2"); } - /* -------------------------------------------------------------------------- [EXPERIMENTAL] Multi-axis, single variable font. @@ -192,7 +191,7 @@ explicitly, e.g. */ @font-face { - font-family: 'Inter var experimental'; + font-family: "Inter var experimental"; font-weight: 100 900; font-display: swap; font-style: oblique 0deg 10deg; diff --git a/webapp/public/index.html b/webapp/public/index.html index 41d2a693a5..3c931da136 100644 --- a/webapp/public/index.html +++ b/webapp/public/index.html @@ -5,12 +5,9 @@ - - - + + + - - - Antares Web - - - -
- - - diff --git a/webapp_v2/public/locales/en/data.json b/webapp_v2/public/locales/en/data.json deleted file mode 100644 index 21a0152195..0000000000 --- a/webapp_v2/public/locales/en/data.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "data": "Data", - "matrixSearchbarPlaceholder": "Search for matrices...", - "createMatrix": "Create dataset", - "upload": "Upload", - "metadata": "Metadata", - "key": "Key", - "value": "Value", - "emptyString": "Empty string", - "emptyName": "Name cannot be empty", - "groupsLabel": "Groups", - "publicLabel": "Public", - "matrixListError": "Unable to retrieve matrix list", - "matrixError": "Unable to retrieve matrix data", - "choosefile": "Choose a file", - "matrix": "Matrix", - "newMatrixTitle": "Create new matrix dataset", - "cancelButton": "Cancel", - "saveButton": "Save", - "fileNotUploaded": "Please select a file", - "permissionsLabel": "Permissions", - "matrixNameLabel": "Dataset name", - "onMatrixUpdate": "Matrix successfully updated", - "onMatrixCreation": "Matrix successfully created", - "onMatrixSaveError": "Matrix not saved", - "onMatrixDeleteError": "Matrix not deleted", - "onMatrixDeleteSuccess": "Matrix successfully deleted", - "deleteMatrixConfirmation": "Are you sure you want to delete this matrix ?", - "uploadHelp": "The file must be a single matrix file or a zip containing a list of matrix files", - "uploadingmatrix": "Uploading matrices", - "analyzingmatrix": "Analyzing matrices", - "copyid": "Copy the matrix id", - "onMatrixIdCopySuccess": "Matrix id copied !", - "jsonFormat": "JSON Format", - "graphSelector": "Columns", - "monotonicView": "Monotonic", - "matrixEmpty": "Empty matrix" -} diff --git a/webapp_v2/public/locales/en/downloads.json b/webapp_v2/public/locales/en/downloads.json deleted file mode 100644 index 88a56617c2..0000000000 --- a/webapp_v2/public/locales/en/downloads.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "expirationDate": "Expiration date", - "newDownload": "New download created", - "downloadReady": "Download ready" -} diff --git a/webapp_v2/public/locales/en/jobs.json b/webapp_v2/public/locales/en/jobs.json deleted file mode 100644 index 2dc0dbdeb3..0000000000 --- a/webapp_v2/public/locales/en/jobs.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "failedtoretrievejobs": "Failed to retrieve job information", - "failedtoretrievelogs": "Failed to retrieve job logs", - "failedtoretrievedownloads": "Failed to retrieve downloads list", - "logdetails": "No logs found", - "launches": "Launches", - "exports": "Exports", - "others": "Others" -} diff --git a/webapp_v2/public/locales/en/main.json b/webapp_v2/public/locales/en/main.json deleted file mode 100644 index 8df70dffac..0000000000 --- a/webapp_v2/public/locales/en/main.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "connexion": "Connexion", - "tasks": "Tasks", - "api": "API", - "documentation": "Documentation", - "github": "Github", - "hide": "Hide", - "settings": "Settings", - "recentStudy": "Recent study", - "version": "Version", - "logout": "Logout", - "password": "Password", - "delete": "Delete", - "archive": "Archive", - "export": "Export", - "create": "Create", - "name": "Name", - "import": "Import", - "allStudies": "All studies", - "loginError": "Failed to authenticate", - "launch": "Launch", - "studies": "Studies", - "jobs": "Jobs", - "exports": "Exports", - "unknown": "Unkown", - "confirmationModalTitle": "Confirmation", - "yesButton": "Yes", - "noButton": "No", - "backButton": "Back", - "closeButton": "Close", - "cancelButton": "Cancel", - "save": "Save", - "edit": "Edit", - "copy": "Copy", - "data": "Data", - "websocketstatusmessage": "Websocket connection unavailable. Check your internet connection or try to refresh the page.", - "noContent": "No content", - "appUnderMaintenance": "App under maintenance.", - "comeBackLater": "Please come back later.", - "onGetMessageInfoError": "Unable to retrieve message info", - "onGetMaintenanceError": "Unable to retrieve maintenance status", - "search": "Search", - "daysSymbol": "days", - "hoursSymbol": "hours", - "minutesSymbol": "minutes", - "secondsSymbol": "seconds", - "loading": "Loading", - "logoutModalMessage": "Are you sure you want to logout ?" -} diff --git a/webapp_v2/public/locales/en/settings.json b/webapp_v2/public/locales/en/settings.json deleted file mode 100644 index 397eb76cfd..0000000000 --- a/webapp_v2/public/locales/en/settings.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "users": "Users", - "tokens": "Tokens", - "groups": "Groups", - "maintenance": "Maintenance", - "usersSearchbarPlaceholder": "Search for users...", - "tokensSearchbarPlaceholder": "Search for tokens...", - "groupsSearchbarPlaceholder": "Search for groups...", - "createUser": "Create user", - "createToken": "Create token", - "createGroup": "Create group", - "groupsError": "Unable to retrieve groups list", - "usersError": "Unable to retrieve users list", - "tokensError": "Unable to retrieve tokens list", - "group": "Group", - "groupNameLabel": "Group name", - "newGroupTitle": "New group", - "usernameLabel": "Username", - "passwordLabel": "Password", - "newUserTitle": "Create new user", - "cancelButton": "Cancel", - "saveButton": "Save", - "roleLabel": "Role", - "addButton": "Add", - "permissionsLabel": "Permissions", - "readerRole": "READER", - "writerRole": "WRITER", - "runnerRole": "RUNNER", - "adminRole": "ADMIN", - "onGroupUpdate": "Group successfully updated", - "onGroupCreation": "Group successfully created", - "onGroupSaveError": "Group not saved", - "onGroupDeleteError": "Group not deleted", - "onUserDeleteError": "User not deleted", - "onTokenDeleteError": "Token not deleted", - "onGroupDeleteSuccess": "Group successfully deleted", - "onUserDeleteSuccess": "User successfully deleted", - "onTokenDeleteSuccess": "Token successfully deleted", - "groupInfosError": "Error while fetching groups", - "onUserCreation": "User successfully created", - "onUserUpdate": "User successfully updated", - "onUserSaveError": "User not saved", - "newTokenTitle": "New token", - "tokenNameLabel": "Token name", - "onTokenSaveError": "Token not saved", - "onTokenCreation": "Token successfully created", - "linkTokenLabel": "Link to user", - "deleteGroupConfirmation": "Are you sure you want to delete this group ?", - "deleteUserConfirmation": "Are you sure you want to delete this user ?", - "deleteTokenConfirmation": "Are you sure you want to delete this token ?", - "printTokenMessage": "Please note and save the token shown below in a safe place", - "removeUserFromGroup": "Are you sure you want to remove this user from the group ?", - "messageMode": "Message", - "maintenanceMode": "Maintenance mode", - "onUpdateMessageInfo": "Message info updated successfully", - "onUpdateMaintenance": "Maintenance mode updated successfully", - "onUpdateMaintenanceError": "Maintenance mode not updated", - "onUpdateMessageInfoError": "Message info not updated", - "updateMaintenanceModeConfirmation": "Are you sure you want to change the application maintenance status ?", - "updateMessageModeConfirmation": "Are you sure you want to change the message information ?" -} diff --git a/webapp_v2/public/locales/en/singlestudy.json b/webapp_v2/public/locales/en/singlestudy.json deleted file mode 100644 index 04aaeed782..0000000000 --- a/webapp_v2/public/locales/en/singlestudy.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "informations": "Information", - "treeView": "Tree view", - "variants": "Variant management", - "runStudy": "Run study", - "xpansionMode": "Xpansion mode", - "useXpansionVersionR": "Use the R legacy Xpansion mode", - "postProcessing": "Post processing", - "timeLimit": "Time limit", - "timeLimitHelper": "Time limit (in hours)", - "nbCpu": "Number of core", - "synthesis": "Synthesis", - "level": "Level", - "years": "Years", - "type": "Type", - "includeClusters": "Include clusters", - "area": "Areas", - "link": "Links", - "district": "Districts", - "hourly": "Hourly", - "daily": "Daily", - "weekly": "Weekly", - "monthly": "Monthly", - "annual": "Annual", - "currentTask": "Current tasks", - "failtoloadjobs": "Failed to load jobs", - "taskId": "Id", - "taskStatus": "Status", - "taskCreationDate": "Creation date", - "taskCompletionDate": "Completion date", - "taskMessage": "Message", - "taskOutputId": "Simulation output Id", - "taskLog": "Logs", - "noTasks": "No tasks", - "failtofetchlogs": "Failed to fetch logs", - "failtokilltask": "Failed to kill task", - "owner": "Owner", - "groupsLabel": "Groups", - "publicMode": "Public mode", - "onPermissionUpdate": "Permission successfully updated", - "onPermissionError": "Permission not updated", - "version": "Version", - "creationDate": "Creation date", - "modificationDate": "Modification date", - "permission": "Permissions", - "nonePublicMode": "None", - "readPublicMode": "Read", - "executePublicMode": "Execute", - "editPublicMode": "Edit", - "fullPublicMode": "Full", - "nonePublicModeText": "No public mode", - "readPublicModeText": "Public permission read", - "executePublicModeText": "Public permission execution", - "editPublicModeText": "Public permission write", - "fullPublicModeText": "Total public permission", - "generalInfo": "General informations", - "renamestudy": "Rename study", - "killStudy": "Cancel", - "exportOutput": "Export output", - "confirmKill": "Are you sure you want to cancel the simulation job ?", - "failedToExportOutput": "Failed to export the output", - "failedToListOutputs": "Failed to retrieve output list", - "notes": "Notes", - "fetchCommentsError": "Failed to fetch comments", - "commentsSaved": "Comments saved successfully", - "commentsNotSaved": "Comments not saved", - "onStudyIdCopySucces": "Study id copied !", - "onStudyIdCopyError": "Failed to copy study id", - "copyId": "Copy the study id", - "copyIdDir": "Copy id", - "newArea": "New Area", - "newLink": "New Link", - "areaName": "Area name", - "linkSource": "Source name", - "linkTarget": "Target name", - "map": "Map", - "posX": "Position X", - "posY": "Position Y", - "color": "Color", - "more": "More", - "confirmDeleteLink": "Are you sure you want to delete this link ?", - "confirmDeleteArea": "Are you sure you want to delete this area ?", - "createAreaError": "Failed to create the area", - "createLinkError": "Failed to create the link", - "updateUIError": "Failed to update the area", - "deleteAreaOrLink": "Area or link not deleted", - "exportAll": "Export all outputs", - "outputExportSuccess": "Outputs exported successfully", - "outputExportInProgress": "Downloading study outputs...", - "columns": "Columns", - "filter": "Filter", - "filterIn": "Filter In", - "filterOut": "Filter Out", - "area1": "Area 1", - "area2": "Area 2", - "managedStudy": "Managed study", - "properties": "Properties", - "validate": "Validate", - "parentStudy": "Parent study", - "modifiedStudySuccess": "Study {{studyname}} updated successfully", - "modifiedStudyFailed": "Study {{studyname}} not updated", - "versionSource": "Version source" -} diff --git a/webapp_v2/public/locales/en/studymanager.json b/webapp_v2/public/locales/en/studymanager.json deleted file mode 100644 index 74b01c1fcd..0000000000 --- a/webapp_v2/public/locales/en/studymanager.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "confirmdelete": "Are you sure you want to delete this study ?", - "nameofstudy": "Study name", - "failtoretrievedata": "Failed to retrieve data", - "searchstudy": "Search studies", - "failtoretrievestudies": "Failed to retrieve studies", - "failtodeletestudy": "Failed to delete study", - "failtoloadstudy": "Failed to load study", - "failtorunstudy": "Failed to run study", - "studylaunched": "{{studyname}} launched !", - "savedatasuccess": "Data saved with success", - "scanFolder": "Scan folder", - "scanFolderSuccess": "Folder scan started", - "scanFolderError": "Failed to start folder scan", - "importcopy": "Copy", - "failtosavedata": "Failed to save data", - "failtocopystudy": "Failed to copy study", - "studycopiedsuccess": "Success copying study", - "studycopying": "Copying study...", - "studyarchiving": "Archiving study...", - "studyunarchiving": "Unarchiving study...", - "archive": "Archive", - "unarchive": "Unarchive", - "archivesuccess": "Study {{studyname}} archived", - "archivefailure": "Failed to archive study {{studyname}}", - "unarchivesuccess": "Study {{studyname}} unarchived", - "unarchivefailure": "Failed to unarchive study {{studyname}}", - "permission": "Permission", - "refresh": "Refresh studies", - "sortByName": "Alphabetical order", - "sortByDate": "Date", - "managedStudiesFilter": "Managed studies", - "userFilter": "Filter by user", - "groupFilter": "Filter by group", - "versionFilter": "Filter by version", - "copyWith": "Copy with outputs", - "copyWithout": "Copy without outputs", - "export": "Export", - "delete": "Delete", - "exportWith": "Export with outputs", - "exportWithout": "Export without outputs", - "sortBy": "View by", - "createNewStudy": "Create a new study", - "createStudySuccess": "Study {{studyname}} created successfully", - "createStudyFailed": "Study {{studyname}} not created", - "studyName": "Study name", - "version": "Version", - "baselineStudy": "Baseline study", - "description": "Description", - "Permission": "Permission", - "metadata": "Metadata", - "group": "Group", - "tag": "Tag", - "enterTag": "Enter a tag", - "exploreButton": "Explore", - "copyID": "Copy ID", - "studies": "studies", - "versionsLabel": "Versions", - "usersLabel": "Users", - "groupsLabel": "Groups", - "tagsLabel": "Tags", - "bookmark": "Bookmark", - "removeFavorite": "Remove from favorites" -} diff --git a/webapp_v2/public/locales/en/variants.json b/webapp_v2/public/locales/en/variants.json deleted file mode 100644 index 032375479b..0000000000 --- a/webapp_v2/public/locales/en/variants.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "variants": "Variant management", - "variantDependencies": "Variant dependencies", - "createVariant": "Create variant", - "editionMode": "Edition mode", - "testGeneration": "Test generation", - "newVariant": "New variant", - "variantNameLabel": "Name", - "variantMode": "Dependency view", - "onVariantCreationError": "Variant not created", - "add": "Add", - "save": "Save", - "confirmsave": "Are you sure you want to save these commands ?", - "newCommand": "Add new command", - "commandNameLabel": "Name (optional)", - "commandActionLabel": "Select action", - "saveSuccess": "Command updated successfully", - "deleteSuccess": "Command deleted successfully", - "addSuccess": "Command added successfully", - "moveSuccess": "Command moved successfully", - "saveError": "Command not updated", - "deleteError": "Command not deleted", - "addError": "Command not added", - "moveError": "Command not moved", - "fetchCommandError": "Error while retrieving commands", - "fetchSynthesisError": "Error while fetching study synthesis", - "importSuccess": "File imported successfully", - "importError": "Error during file importation", - "jsonParsingError": "Error while parsing json command file", - "exportError": "Error during file exportation", - "launchGenerationSuccess": "Variant generation launched", - "launchGenerationError": "Variant generation could not launched", - "generationInProgress": "Generation in progress...", - "taskCompleted": "Task completed successfully", - "taskFailed": "Error: Task failed", - "nameEmptyError": "Invalid input, name is empty", - "noCommands": "Command list is empty", - "newCommandButton": "New command" -} diff --git a/webapp_v2/public/locales/fr-FR/data.json b/webapp_v2/public/locales/fr-FR/data.json deleted file mode 100644 index 3345550dd8..0000000000 --- a/webapp_v2/public/locales/fr-FR/data.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "data": "Données", - "matrixSearchbarPlaceholder": "Chercher des matrices...", - "createMatrix": "Ajouter des données", - "upload": "Charger", - "metadata": "Metadata", - "key": "Clé", - "value": "Valeur", - "emptyString": "Chaine de caractères vide", - "emptyName": "Le nom ne peut être vide", - "groupsLabel": "Groupes", - "publicLabel": "Publique", - "matrixListError": "Impossible de récupérer la liste des matrices", - "matrixError": "Impossible de récupérer les données de la matrice", - "choosefile": "Choisir un fichier", - "matrix": "Matrice", - "newMatrixTitle": "Créer un nouveau jeu de données", - "cancelButton": "Annuler", - "saveButton": "Sauvegarder", - "fileNotUploaded": "Veuillez sélectionner un fichier", - "permissionsLabel": "Permissions", - "matrixNameLabel": "Nom du groupe de matrices", - "onMatrixUpdate": "Matrice chargée avec succès", - "onMatrixCreation": "Matrice créée", - "onMatrixSaveError": "Matrice non sauvegardée", - "onMatrixDeleteError": "Matrice non supprimée", - "onMatrixDeleteSuccess": "Matrice supprimée", - "deleteMatrixConfirmation": "Etes vous sûr de vouloir supprimer ce jeu de donnée ?", - "uploadHelp": "Le fichier doit être une matrice simple ou un zip contenant à plat des fichiers de matrices", - "uploadingmatrix": "Chargement des matrices", - "analyzingmatrix": "Analyse des matrices", - "copyid": "Copie l'identifiant de la matrice", - "onMatrixIdCopySuccess": "Identifiant de matrice copié !", - "jsonFormat": "Format JSON", - "graphSelector": "Colonnes", - "monotonicView": "Monotone", - "matrixEmpty": "Matrice vide" -} diff --git a/webapp_v2/public/locales/fr-FR/downloads.json b/webapp_v2/public/locales/fr-FR/downloads.json deleted file mode 100644 index 60d9d08520..0000000000 --- a/webapp_v2/public/locales/fr-FR/downloads.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "expirationDate": "Date d'expiration", - "newDownload": "Nouveau téléchargement créé", - "downloadReady": "Téléchargement prêt" -} diff --git a/webapp_v2/public/locales/fr-FR/jobs.json b/webapp_v2/public/locales/fr-FR/jobs.json deleted file mode 100644 index 84ce7e1195..0000000000 --- a/webapp_v2/public/locales/fr-FR/jobs.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "failedtoretrievejobs": "Échec de la récupération des tâches", - "failedtoretrievelogs": "Échec de la récupération des logs", - "failedtoretrievedownloads": "Échec de la récupération des exports", - "logdetails": "Pas de logs" -} diff --git a/webapp_v2/public/locales/fr-FR/main.json b/webapp_v2/public/locales/fr-FR/main.json deleted file mode 100644 index cf0a0d74c1..0000000000 --- a/webapp_v2/public/locales/fr-FR/main.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "connexion": "Connexion", - "settings": "Paramètres", - "version": "Version", - "logout": "Déconnexion", - "password": "Mot de passe", - "delete": "Supprimer", - "archive": "Archiver", - "export": "Exporter", - "create": "Créer", - "name": "Nom", - "import": "Importer", - "allStudies": "Toutes les études", - "loginError": "Echec de l'authentification", - "launch": "Lancer", - "studies": "Etudes", - "jobs": "Tâches", - "exports": "Exports", - "unknown": "Inconnu", - "confirmationModalTitle": "Confirmation", - "yesButton": "Oui", - "noButton": "Non", - "backButton": "Retour", - "closeButton": "Fermer", - "save": "Sauvegarder", - "edit": "Editer", - "copy": "Copie", - "data": "Données", - "websocketstatusmessage": "Connexion websocket non disponible. Vérifier la connexion internet ou tentez de rafraichir la page.", - "noContent": "Pas de contenu", - "appUnderMaintenance": "Site en maintenance", - "comeBackLater": "Merci de revenir plus tard", - "onGetMessageInfoError": "Impossible de récupérer le message d'info", - "onGetMaintenanceError": "Impossible de récupérer le status de maintenance de l'application" -} diff --git a/webapp_v2/public/locales/fr-FR/settings.json b/webapp_v2/public/locales/fr-FR/settings.json deleted file mode 100644 index 864b86a638..0000000000 --- a/webapp_v2/public/locales/fr-FR/settings.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "users": "Utilisateurs", - "tokens": "Tokens", - "groups": "Groupes", - "maintenance": "Maintenance", - "usersSearchbarPlaceholder": "Recherchez des utilisateurs...", - "tokensSearchbarPlaceholder": "Recherchez des tokens...", - "groupsSearchbarPlaceholder": "Recherchez des groupes...", - "createUser": "Nouvel utilisateur", - "createToken": "Nouveau token", - "createGroup": "Nouveau groupe", - "groupsError": "Impossible de récupérer la liste des groupes", - "usersError": "Impossible de récupérer la liste des utilisateurs", - "tokensError": "Impossible de récupérer la liste des tokens", - "group": "Groupe", - "groupNameLabel": "Nom du groupe", - "newGroupTitle": "Nouveau groupe", - "usernameLabel": "nom", - "passwordLabel": "Mot de passe", - "newUserTitle": "Nouvel utilisateur", - "cancelButton": "Fermer", - "saveButton": "Sauvegarder", - "roleLabel": "Role", - "addButton": "Ajouter", - "permissionsLabel": "Permissions", - "readerRole": "LECTURE", - "writerRole": "ECRITURE", - "runnerRole": "EXECUTION", - "adminRole": "ADMIN", - "onGroupUpdate": "Groupe modifié avec succès", - "onGroupCreation": "Groupe créé avec succès", - "onGroupSaveError": "Groupe non sauvegardé", - "onGroupDeleteError": "Groupe non supprimé", - "onUserDeleteError": "Utilisateur non supprimé", - "onTokenDeleteError": "Token non supprimé", - "onGroupDeleteSuccess": "Groupe supprimé avec succès", - "onUserDeleteSuccess": "Utilisateur supprimé avec succès", - "onTokenDeleteSuccess": "Token supprimé avec succès", - "groupInfosError": "Erreur lors de la récupération des groupes", - "onUserCreation": "Utilisateur créé avec succès", - "onUserUpdate": "Utilisateur modifié avec succès", - "onUserSaveError": "Utilisateur non sauvegardé", - "newTokenTitle": "Nouveau token", - "tokenNameLabel": "Nom du token", - "onTokenSaveError": "Token non sauvegardé", - "onTokenCreation": "Token créé avec succès", - "linkTokenLabel": "Lier à l'utilisateur", - "deleteGroupConfirmation": "Êtes-vous sûr de vouloir supprimer ce groupe ?", - "deleteUserConfirmation": "Êtes-vous sûr de vouloir supprimer cet utilisateur ?", - "deleteTokenConfirmation": "Êtes-vous sûr de vouloir supprimer ce token ?", - "printTokenMessage": "Veuillez noter et enregistrer le token qui s'affiche ci-dessous en lieu sûr", - "removeUserFromGroup": "Êtes vous sûr de vouloir supprimer cet utilisateur du groupe ?", - "messageMode": "Message", - "maintenanceMode": "Mode maintenance", - "onUpdateMessageInfo": "Message d'information modifié avec succès", - "onUpdateMaintenance": "Status de maintenance modifié avec succès", - "onUpdateMaintenanceError": "Erreur lors du changement du status de maintenance", - "onUpdateMessageInfoError": "Erreur lors du changement du message d'information", - "updateMaintenanceModeConfirmation": "Êtes vous sûr de vouloir changer le status de maintenance de l'application ?", - "updateMessageModeConfirmation": "Êtes vous sûr de vouloir changer le message d'information ?" -} diff --git a/webapp_v2/public/locales/fr-FR/singlestudy.json b/webapp_v2/public/locales/fr-FR/singlestudy.json deleted file mode 100644 index 38e8d5ada5..0000000000 --- a/webapp_v2/public/locales/fr-FR/singlestudy.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "informations": "Informations", - "treeView": "Vue détaillée", - "variants": "Gestion des variantes", - "runStudy": "Lancer l'étude", - "xpansionMode": "Mode Xpansion", - "postProcessing": "Post processing", - "timeLimit": "Limite de temps", - "timeLimitHelper": "Limite de temps (en heures)", - "nbCpu": "Nombre de coeurs", - "currentTask": "Tâches", - "failtoloadjobs": "Echec du chargement des jobs", - "taskId": "Id", - "taskStatus": "Status", - "taskCreationDate": "Date de création", - "taskCompletionDate": "Date de complétion", - "taskMessage": "Message", - "taskOutputId": "Id de la simulation", - "taskLog": "Logs", - "noTasks": "Pas de tâches en cours", - "failtofetchlogs": "Echec du chargement des logs", - "failtokilltask": "Échec de l'annulation de l'étude", - "owner": "Propriétaire", - "groupsLabel": "Groupes", - "publicMode": "Mode public", - "onPermissionUpdate": "Permissions modifié avec succès", - "onPermissionError": "Permissions non modifié", - "version": "Version", - "creationDate": "Date de création", - "modificationDate": "Date de modification", - "permission": "Permissions", - "nonePublicMode": "Aucune", - "readPublicMode": "Lecture", - "executePublicMode": "Execution", - "editPublicMode": "Edition", - "fullPublicMode": "Total", - "nonePublicModeText": "Aucune permission publique", - "readPublicModeText": "Permission publique en lecture", - "executePublicModeText": "Permission publique de lancement", - "editPublicModeText": "Permission publique en écriture", - "fullPublicModeText": "Permission publique totale", - "generalInfo": "Informations générales", - "renamestudy": "Renommer l'étude", - "killStudy": "Arrêter", - "exportOutput": "Exporter les sorties", - "confirmKill": "Êtes-vous sûr de vouloir arrêter la tâche de simulation ?", - "failedToExportOutput": "Echec lors de l'export de la sortie", - "failedToListOutputs": "Echec de la récupération des sorties", - "notes": "Notes", - "fetchCommentsError": "Echec lors de la récupération des commentaires", - "commentsSaved": "Commentaires enregistrés avec succès", - "commentsNotSaved": "Erreur lors de l'enregistrement des commentaires", - "onStudyIdCopySuccess": "Identifiant de l'étude copié", - "onStudyIdCopyError": "Erreur lors de la copie de l'identifiant de l'étude", - "copyId": "Copie l'identifiant de l'étude", - "copyIdDir": "Copier l'ID" -} diff --git a/webapp_v2/public/locales/fr-FR/studymanager.json b/webapp_v2/public/locales/fr-FR/studymanager.json deleted file mode 100644 index 627d1865d5..0000000000 --- a/webapp_v2/public/locales/fr-FR/studymanager.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "confirmdelete": "Etes vous sûr de vouloir supprimer cette étude ?", - "nameofstudy": "Nom de l'étude", - "failtoretrievedata": "Echec de la récupération des données", - "searchstudy": "Rechercher des études", - "failtoretrievestudies": "Echec de la récupération des études", - "failtodeletestudy": "Echec de la suppression de l'étude", - "failtoloadstudy": "Echec du chargement de l'étude", - "failtorunstudy": "Echec du lancement de l'étude", - "studylaunched": "{{studyname}} lancée !", - "savedatasuccess": "Données sauvegardées avec succès", - "importcopy": "Copier", - "failtosavedata": "Erreur lors de la sauvegarde des données", - "failtocopystudy": "Erreur lors de la copie de l'étude", - "studycopiedsuccess": "Etude copiée avec succès", - "archive": "Archiver", - "unarchive": "Désarchiver", - "archivesuccess": "Etude {{studyname}} archivée", - "archivefailure": "Erreur lors de l'archivage de l'étude {{studyname}}", - "unarchivesuccess": "Etude {{studyname}} désarchivée", - "unarchivefailure": "Erreur lors du désarchivage de l'étude {{studyname}}", - "permission": "Permission", - "refresh": "Charger les études", - "sortByName": "Trier par nom", - "sortByDate": "Trier par date", - "managedStudiesFilter": "Etudes managées", - "userFilter": "Filtrer par utilisateur", - "groupFilter": "Filtrer par groupe", - "versionFilter": "Filtrer par version", - "copyWith": "Copier avec les sorties", - "copyWithout": "Copier sans les sorties", - "exportWith": "Exporter avec les sorties", - "exportWithout": "Exporter sans les sorties" -} diff --git a/webapp_v2/public/locales/fr-FR/variants.json b/webapp_v2/public/locales/fr-FR/variants.json deleted file mode 100644 index b07d157c2e..0000000000 --- a/webapp_v2/public/locales/fr-FR/variants.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "variantDependencies": "Vue dépendences", - "createVariant": "Créer une variante", - "editionMode": "Mode édition", - "testGeneration": "Tester la géneration", - "newVariant": "Nouvelle variante", - "variantNameLabel": "Nom", - "variantMode": "Vue dépendances", - "onVariantCreationError": "Erreur lors de la création du variant", - "add": "Ajouter", - "save": "Sauvegarder", - "confirmsave": "Êtes-vous sûr de vouloir sauvegarder ces commandes ?", - "newCommand": "Ajouter une nouvelle commande", - "commandNameLabel": "Nom (optionel)", - "commandActionLabel": "Sélectionnez le type", - "saveSuccess": "Commande modifié avec succès", - "deleteSuccess": "Commande supprimée avec succès", - "addSuccess": "Command ajoutée avec succès", - "moveSuccess": "Votre commande a changé de position", - "saveError": "Erreur lors de la modification de votre commande", - "deleteError": "Erreur lors de la suppression de votre commande", - "addError": "Erreur lors de l'ajout de votre commande", - "moveError": "Erreur lors du changement de position", - "fetchCommandError": "Erreur lors de la récupération des commandes", - "fetchSynthesisError": "Erreur lors de la récupération de la synthèse de l'étude", - "importSuccess": "Fichier importé avec succès", - "importError": "Erreur lors de l'importation du fichier", - "jsonParsingError": "Erreur lors de la lecture du fichier de commande", - "exportError": "Erreur lors de l'exportation du fichier", - "launchGenerationSuccess": "Génération de variante lancée avec succès", - "launchGenerationError": "Erreur lors du lancement de la génération", - "generationInProgress": "Generation de l'étude en cours...", - "taskCompleted": "Tâche terminée avec succès", - "taskFailed": "Erreur: l'exécution de la tâche a échoué", - "nameEmptyError": "Entrée invalide, le nom est vide", - "noCommands": "Liste de commandes vide", - "newCommandButton": "Nouvelle commande" -} diff --git a/webapp_v2/public/locales/fr/data.json b/webapp_v2/public/locales/fr/data.json deleted file mode 100644 index 3345550dd8..0000000000 --- a/webapp_v2/public/locales/fr/data.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "data": "Données", - "matrixSearchbarPlaceholder": "Chercher des matrices...", - "createMatrix": "Ajouter des données", - "upload": "Charger", - "metadata": "Metadata", - "key": "Clé", - "value": "Valeur", - "emptyString": "Chaine de caractères vide", - "emptyName": "Le nom ne peut être vide", - "groupsLabel": "Groupes", - "publicLabel": "Publique", - "matrixListError": "Impossible de récupérer la liste des matrices", - "matrixError": "Impossible de récupérer les données de la matrice", - "choosefile": "Choisir un fichier", - "matrix": "Matrice", - "newMatrixTitle": "Créer un nouveau jeu de données", - "cancelButton": "Annuler", - "saveButton": "Sauvegarder", - "fileNotUploaded": "Veuillez sélectionner un fichier", - "permissionsLabel": "Permissions", - "matrixNameLabel": "Nom du groupe de matrices", - "onMatrixUpdate": "Matrice chargée avec succès", - "onMatrixCreation": "Matrice créée", - "onMatrixSaveError": "Matrice non sauvegardée", - "onMatrixDeleteError": "Matrice non supprimée", - "onMatrixDeleteSuccess": "Matrice supprimée", - "deleteMatrixConfirmation": "Etes vous sûr de vouloir supprimer ce jeu de donnée ?", - "uploadHelp": "Le fichier doit être une matrice simple ou un zip contenant à plat des fichiers de matrices", - "uploadingmatrix": "Chargement des matrices", - "analyzingmatrix": "Analyse des matrices", - "copyid": "Copie l'identifiant de la matrice", - "onMatrixIdCopySuccess": "Identifiant de matrice copié !", - "jsonFormat": "Format JSON", - "graphSelector": "Colonnes", - "monotonicView": "Monotone", - "matrixEmpty": "Matrice vide" -} diff --git a/webapp_v2/public/locales/fr/downloads.json b/webapp_v2/public/locales/fr/downloads.json deleted file mode 100644 index 60d9d08520..0000000000 --- a/webapp_v2/public/locales/fr/downloads.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "expirationDate": "Date d'expiration", - "newDownload": "Nouveau téléchargement créé", - "downloadReady": "Téléchargement prêt" -} diff --git a/webapp_v2/public/locales/fr/jobs.json b/webapp_v2/public/locales/fr/jobs.json deleted file mode 100644 index 13f8d9018d..0000000000 --- a/webapp_v2/public/locales/fr/jobs.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "failedtoretrievejobs": "Échec de la récupération des tâches", - "failedtoretrievelogs": "Échec de la récupération des logs", - "failedtoretrievedownloads": "Échec de la récupération des exports", - "logdetails": "Pas de logs", - "launches": "Lancements", - "exports": "Exports", - "others": "Autres" -} diff --git a/webapp_v2/public/locales/fr/main.json b/webapp_v2/public/locales/fr/main.json deleted file mode 100644 index c5d5cb3a15..0000000000 --- a/webapp_v2/public/locales/fr/main.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "connexion": "Connexion", - "tasks": "Tâches", - "api": "API", - "documentation": "Documentation", - "github": "Github", - "hide": "Masquer", - "settings": "Paramètres", - "recentStudy": "Etude récente", - "version": "Version", - "logout": "Déconnexion", - "password": "Mot de passe", - "delete": "Supprimer", - "archive": "Archiver", - "export": "Exporter", - "create": "Créer", - "name": "Nom", - "import": "Importer", - "allStudies": "Toutes les études", - "loginError": "Echec de l'authentification", - "launch": "Lancer", - "studies": "Etudes", - "jobs": "Tâches", - "exports": "Exports", - "unknown": "Inconnu", - "confirmationModalTitle": "Confirmation", - "yesButton": "Oui", - "noButton": "Non", - "backButton": "Retour", - "closeButton": "Fermer", - "cancelButton": "Annuler", - "save": "Sauvegarder", - "edit": "Editer", - "copy": "Copie", - "data": "Données", - "websocketstatusmessage": "Connexion websocket non disponible. Vérifier la connexion internet ou tentez de rafraichir la page.", - "noContent": "Pas de contenu", - "appUnderMaintenance": "Site en maintenance", - "comeBackLater": "Merci de revenir plus tard", - "onGetMessageInfoError": "Impossible de récupérer le message d'info", - "onGetMaintenanceError": "Impossible de récupérer le status de maintenance de l'application", - "search": "Rechercher", - "daysSymbol": "jours", - "hoursSymbol": "heures", - "minutesSymbol": "minutes", - "secondsSymbol": "secondes", - "loading": "Chargement", - "logoutModalMessage": "Êtes vous sûr de vouloir vous déconnecter ?" -} diff --git a/webapp_v2/public/locales/fr/settings.json b/webapp_v2/public/locales/fr/settings.json deleted file mode 100644 index 864b86a638..0000000000 --- a/webapp_v2/public/locales/fr/settings.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "users": "Utilisateurs", - "tokens": "Tokens", - "groups": "Groupes", - "maintenance": "Maintenance", - "usersSearchbarPlaceholder": "Recherchez des utilisateurs...", - "tokensSearchbarPlaceholder": "Recherchez des tokens...", - "groupsSearchbarPlaceholder": "Recherchez des groupes...", - "createUser": "Nouvel utilisateur", - "createToken": "Nouveau token", - "createGroup": "Nouveau groupe", - "groupsError": "Impossible de récupérer la liste des groupes", - "usersError": "Impossible de récupérer la liste des utilisateurs", - "tokensError": "Impossible de récupérer la liste des tokens", - "group": "Groupe", - "groupNameLabel": "Nom du groupe", - "newGroupTitle": "Nouveau groupe", - "usernameLabel": "nom", - "passwordLabel": "Mot de passe", - "newUserTitle": "Nouvel utilisateur", - "cancelButton": "Fermer", - "saveButton": "Sauvegarder", - "roleLabel": "Role", - "addButton": "Ajouter", - "permissionsLabel": "Permissions", - "readerRole": "LECTURE", - "writerRole": "ECRITURE", - "runnerRole": "EXECUTION", - "adminRole": "ADMIN", - "onGroupUpdate": "Groupe modifié avec succès", - "onGroupCreation": "Groupe créé avec succès", - "onGroupSaveError": "Groupe non sauvegardé", - "onGroupDeleteError": "Groupe non supprimé", - "onUserDeleteError": "Utilisateur non supprimé", - "onTokenDeleteError": "Token non supprimé", - "onGroupDeleteSuccess": "Groupe supprimé avec succès", - "onUserDeleteSuccess": "Utilisateur supprimé avec succès", - "onTokenDeleteSuccess": "Token supprimé avec succès", - "groupInfosError": "Erreur lors de la récupération des groupes", - "onUserCreation": "Utilisateur créé avec succès", - "onUserUpdate": "Utilisateur modifié avec succès", - "onUserSaveError": "Utilisateur non sauvegardé", - "newTokenTitle": "Nouveau token", - "tokenNameLabel": "Nom du token", - "onTokenSaveError": "Token non sauvegardé", - "onTokenCreation": "Token créé avec succès", - "linkTokenLabel": "Lier à l'utilisateur", - "deleteGroupConfirmation": "Êtes-vous sûr de vouloir supprimer ce groupe ?", - "deleteUserConfirmation": "Êtes-vous sûr de vouloir supprimer cet utilisateur ?", - "deleteTokenConfirmation": "Êtes-vous sûr de vouloir supprimer ce token ?", - "printTokenMessage": "Veuillez noter et enregistrer le token qui s'affiche ci-dessous en lieu sûr", - "removeUserFromGroup": "Êtes vous sûr de vouloir supprimer cet utilisateur du groupe ?", - "messageMode": "Message", - "maintenanceMode": "Mode maintenance", - "onUpdateMessageInfo": "Message d'information modifié avec succès", - "onUpdateMaintenance": "Status de maintenance modifié avec succès", - "onUpdateMaintenanceError": "Erreur lors du changement du status de maintenance", - "onUpdateMessageInfoError": "Erreur lors du changement du message d'information", - "updateMaintenanceModeConfirmation": "Êtes vous sûr de vouloir changer le status de maintenance de l'application ?", - "updateMessageModeConfirmation": "Êtes vous sûr de vouloir changer le message d'information ?" -} diff --git a/webapp_v2/public/locales/fr/singlestudy.json b/webapp_v2/public/locales/fr/singlestudy.json deleted file mode 100644 index bc9e34f16c..0000000000 --- a/webapp_v2/public/locales/fr/singlestudy.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "informations": "Informations", - "treeView": "Vue détaillée", - "variants": "Gestion des variantes", - "runStudy": "Lancer l'étude", - "xpansionMode": "Mode Xpansion", - "useXpansionVersionR": "Utiliser la version R d'Xpansion", - "postProcessing": "Post processing", - "timeLimit": "Limite de temps", - "timeLimitHelper": "Limite de temps (en heures)", - "nbCpu": "Nombre de coeurs", - "synthesis": "Synthèse", - "level": "Niveau", - "years": "Années", - "type": "Type", - "includeClusters": "Inclure les clusters", - "area": "Zones", - "link": "Liens", - "district": "Districts", - "hourly": "Horaire", - "daily": "Journalier", - "weekly": "Hebdomadaire", - "monthly": "Mensuel", - "annual": "Annuel", - "currentTask": "Tâches", - "failtoloadjobs": "Echec du chargement des jobs", - "taskId": "Id", - "taskStatus": "Status", - "taskCreationDate": "Date de création", - "taskCompletionDate": "Date de complétion", - "taskMessage": "Message", - "taskOutputId": "Id de la simulation", - "taskLog": "Logs", - "noTasks": "Pas de tâches en cours", - "failtofetchlogs": "Echec du chargement des logs", - "failtokilltask": "Échec de l'annulation de l'étude", - "owner": "Propriétaire", - "groupsLabel": "Groupes", - "publicMode": "Mode public", - "onPermissionUpdate": "Permissions modifié avec succès", - "onPermissionError": "Permissions non modifié", - "version": "Version", - "creationDate": "Date de création", - "modificationDate": "Date de modification", - "permission": "Permissions", - "nonePublicMode": "Aucune", - "readPublicMode": "Lecture", - "executePublicMode": "Execution", - "editPublicMode": "Edition", - "fullPublicMode": "Total", - "nonePublicModeText": "Aucune permission publique", - "readPublicModeText": "Permission publique en lecture", - "executePublicModeText": "Permission publique de lancement", - "editPublicModeText": "Permission publique en écriture", - "fullPublicModeText": "Permission publique totale", - "generalInfo": "Informations générales", - "renamestudy": "Renommer l'étude", - "killStudy": "Arrêter", - "exportOutput": "Exporter les sorties", - "confirmKill": "Êtes-vous sûr de vouloir arrêter la tâche de simulation ?", - "failedToExportOutput": "Echec lors de l'export de la sortie", - "failedToListOutputs": "Echec de la récupération des sorties", - "notes": "Notes", - "fetchCommentsError": "Echec lors de la récupération des commentaires", - "commentsSaved": "Commentaires enregistrés avec succès", - "commentsNotSaved": "Erreur lors de l'enregistrement des commentaires", - "onStudyIdCopySuccess": "Identifiant de l'étude copié", - "onStudyIdCopyError": "Erreur lors de la copie de l'identifiant de l'étude", - "copyId": "Copie l'identifiant de l'étude", - "copyIdDir": "Copier l'ID", - "newArea": "Nouvelle zone", - "newLink": "Nouveau lien", - "areaName": "Nom de la zone", - "linkSource": "Nom de la source", - "linkTarget": "Nom de la cible", - "map": "Map", - "posX": "Position X", - "posY": "Position Y", - "color": "Couleur", - "more": "Plus", - "confirmDeleteLink": "Êtes-vous sûr de vouloir supprimer ce lien ?", - "confirmDeleteArea": "Êtes-vous sûr de vouloir supprimer cette zone ?", - "createAreaError": "Échec lors de la création de la zone", - "createLinkError": "Échec lors de la création du lien", - "updateUIError": "Échec lors de la modification de la zone", - "deleteAreaOrLink": "Zone ou lien non supprimé", - "exportAll": "Exporter toutes les sorties", - "outputExportSuccess": "Sorties exportées avec succès", - "outputExportInProgress": "Téléchargement des sorties en cours...", - "columns": "Colonnes", - "filter": "Filtre", - "filterIn": "Filtre d'inclusion (Regex)", - "filterOut": "Filtre d'exclusion (Regex)", - "area1": "Zone 1", - "area2": "Zone 2", - "managedStudy": "Étude managée", - "properties": "Propriétés", - "validate": "Valider", - "parentStudy": "Etude parente", - "modifiedStudySuccess": "L'étude {{studyname}} a été modifiée avec succès", - "modifiedStudyFailed": "Erreur lors de la modification de l'étude {{studyname}}", - "versionSource": "Source" -} diff --git a/webapp_v2/public/locales/fr/studymanager.json b/webapp_v2/public/locales/fr/studymanager.json deleted file mode 100644 index 87335fe64b..0000000000 --- a/webapp_v2/public/locales/fr/studymanager.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "confirmdelete": "Etes vous sûr de vouloir supprimer cette étude ?", - "nameofstudy": "Nom de l'étude", - "failtoretrievedata": "Echec de la récupération des données", - "searchstudy": "Rechercher des études", - "failtoretrievestudies": "Echec de la récupération des études", - "failtodeletestudy": "Echec de la suppression de l'étude", - "failtoloadstudy": "Echec du chargement de l'étude", - "failtorunstudy": "Echec du lancement de l'étude", - "studylaunched": "{{studyname}} lancée !", - "savedatasuccess": "Données sauvegardées avec succès", - "scanFolder": "Scanner le dossier", - "scanFolderSuccess": "Scan du dossier lancé", - "scanFolderError": "Echec du lancement du scan", - "importcopy": "Copier", - "failtosavedata": "Erreur lors de la sauvegarde des données", - "failtocopystudy": "Erreur lors de la copie de l'étude", - "studycopiedsuccess": "Etude copiée avec succès", - "studycopying": "Etude en cours de copie...", - "studyarchiving": "Etude en cours d'archivage...", - "studyunarchiving": "Etude en cours de désarchivage...", - "archive": "Archiver", - "unarchive": "Désarchiver", - "archivesuccess": "Etude {{studyname}} archivée", - "archivefailure": "Erreur lors de l'archivage de l'étude {{studyname}}", - "unarchivesuccess": "Etude {{studyname}} désarchivée", - "unarchivefailure": "Erreur lors du désarchivage de l'étude {{studyname}}", - "permission": "Permission", - "refresh": "Charger les études", - "sortByName": "Ordre alphabétique", - "sortByDate": "Date", - "managedStudiesFilter": "Etudes managées", - "userFilter": "Filtrer par utilisateur", - "groupFilter": "Filtrer par groupe", - "versionFilter": "Filtrer par version", - "copyWith": "Copier avec les sorties", - "copyWithout": "Copier sans les sorties", - "export": "Exporter", - "delete": "Supprimer", - "exportWith": "Exporter avec les sorties", - "exportWithout": "Exporter sans les sorties", - "sortBy": "Trier par", - "createNewStudy": "Créer une nouvelle étude", - "createStudySuccess": "L'étude {{studyname}} a été créé avec succès", - "createStudyFailed": "Erreur lors de la création de l'étude {{studyname}}", - "studyName": "Nom de l'étude", - "version": "Version", - "baselineStudy": "Etude de base", - "description": "Description", - "Permission": "Permission", - "rightToChange": "Droit de changement", - "metadata": "Métadonnées", - "group": "Groupe", - "tag": "Tag", - "enterTag": "Entrer un tag", - "exploreButton": "Explorer", - "copyID": "Copier l'ID", - "studies": "études", - "versionsLabel": "Versions", - "usersLabel": "Utilisateurs", - "groupsLabel": "Groupes", - "tagsLabel": "Tags", - "bookmark": "Ajouter aux favoris", - "removeFavorite": "Retirer des favoris" -} diff --git a/webapp_v2/public/locales/fr/variants.json b/webapp_v2/public/locales/fr/variants.json deleted file mode 100644 index b07d157c2e..0000000000 --- a/webapp_v2/public/locales/fr/variants.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "variantDependencies": "Vue dépendences", - "createVariant": "Créer une variante", - "editionMode": "Mode édition", - "testGeneration": "Tester la géneration", - "newVariant": "Nouvelle variante", - "variantNameLabel": "Nom", - "variantMode": "Vue dépendances", - "onVariantCreationError": "Erreur lors de la création du variant", - "add": "Ajouter", - "save": "Sauvegarder", - "confirmsave": "Êtes-vous sûr de vouloir sauvegarder ces commandes ?", - "newCommand": "Ajouter une nouvelle commande", - "commandNameLabel": "Nom (optionel)", - "commandActionLabel": "Sélectionnez le type", - "saveSuccess": "Commande modifié avec succès", - "deleteSuccess": "Commande supprimée avec succès", - "addSuccess": "Command ajoutée avec succès", - "moveSuccess": "Votre commande a changé de position", - "saveError": "Erreur lors de la modification de votre commande", - "deleteError": "Erreur lors de la suppression de votre commande", - "addError": "Erreur lors de l'ajout de votre commande", - "moveError": "Erreur lors du changement de position", - "fetchCommandError": "Erreur lors de la récupération des commandes", - "fetchSynthesisError": "Erreur lors de la récupération de la synthèse de l'étude", - "importSuccess": "Fichier importé avec succès", - "importError": "Erreur lors de l'importation du fichier", - "jsonParsingError": "Erreur lors de la lecture du fichier de commande", - "exportError": "Erreur lors de l'exportation du fichier", - "launchGenerationSuccess": "Génération de variante lancée avec succès", - "launchGenerationError": "Erreur lors du lancement de la génération", - "generationInProgress": "Generation de l'étude en cours...", - "taskCompleted": "Tâche terminée avec succès", - "taskFailed": "Erreur: l'exécution de la tâche a échoué", - "nameEmptyError": "Entrée invalide, le nom est vide", - "noCommands": "Liste de commandes vide", - "newCommandButton": "Nouvelle commande" -} diff --git a/webapp_v2/public/logo16.png b/webapp_v2/public/logo16.png deleted file mode 100644 index e397870508..0000000000 Binary files a/webapp_v2/public/logo16.png and /dev/null differ diff --git a/webapp_v2/public/manifest.json b/webapp_v2/public/manifest.json deleted file mode 100644 index c8011f95d2..0000000000 --- a/webapp_v2/public/manifest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "short_name": "AntaresWebUI", - "name": "Antares Web UI", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo16.png", - "type": "image/png", - "sizes": "16x16" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/webapp_v2/public/robots.txt b/webapp_v2/public/robots.txt deleted file mode 100644 index 01b0f9a107..0000000000 --- a/webapp_v2/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * diff --git a/webapp_v2/src/assets/antarestlogo.png b/webapp_v2/src/assets/antarestlogo.png deleted file mode 100644 index e3473b5f8d..0000000000 Binary files a/webapp_v2/src/assets/antarestlogo.png and /dev/null differ diff --git a/webapp_v2/src/assets/logo.png b/webapp_v2/src/assets/logo.png deleted file mode 100644 index 1bd094175d..0000000000 Binary files a/webapp_v2/src/assets/logo.png and /dev/null differ diff --git a/webapp_v2/src/common/types.ts b/webapp_v2/src/common/types.ts deleted file mode 100644 index 4272197955..0000000000 --- a/webapp_v2/src/common/types.ts +++ /dev/null @@ -1,583 +0,0 @@ -/* eslint-disable camelcase */ -import { Moment } from "moment"; -import { ReactNode } from "react"; - -export type IDType = number | string; - -export enum SortElement { - DATE = "DATE", - NAME = "NAME", -} - -export enum SortStatus { - INCREASE = "INCREASE", - DECREASE = "DECREASE", -} - -export interface SortItem { - element: SortElement; - status: SortStatus; -} - -export type StudyDataType = "json" | "file" | "matrixfile" | "matrix"; - -export type StudyPublicMode = "NONE" | "READ" | "EXECUTE" | "EDIT" | "FULL"; - -export interface GenericInfo { - id: IDType; - name: string; -} - -export interface StudySummary { - id: string; - name: string; - workspace: string; -} - -export interface StudyMetadataOwner { - id?: number; - name: string; -} - -export type StudyType = "variantstudy" | "rawstudy"; - -export interface StudyMetadataDTO { - id: string; - owner: StudyMetadataOwner; - name: string; - type: StudyType; - created: string; - updated: string; - version: number; - workspace: string; - managed: boolean; - archived: boolean; - groups: Array<{ id: string; name: string }>; - public_mode: StudyPublicMode; - folder?: string; - horizon?: string; - scenario?: string; - status?: string; - doc?: string; - tags?: Array; -} - -export interface StudyMetadata { - id: string; - name: string; - creationDate: string; - modificationDate: string; - owner: StudyMetadataOwner; - type: StudyType; - version: string; - workspace: string; - managed: boolean; - archived: boolean; - groups: Array<{ id: string; name: string }>; - publicMode: StudyPublicMode; - folder?: string; - horizon?: string; - scenario?: string; - status?: string; - doc?: string; - tags?: Array; -} - -export interface StudyMetadataPatchDTO { - horizon?: string; - scenario?: string; - status?: string; - doc?: string; - tags?: Array; -} - -export interface StudyOutput { - name: string; - type: string; - completionDate: string; - referenceStatus: boolean; - synchronized: boolean; - status: string; -} - -export interface VariantTreeDTO { - node: StudyMetadataDTO; - children: Array; -} - -export interface VariantTree { - node: StudyMetadata; - children: Array; -} - -export type JobStatus = "running" | "pending" | "success" | "failed"; - -export interface LaunchJob { - id: string; - studyId: string; - status: JobStatus; - creationDate: string; - completionDate: string; - msg: string; - outputId: string; - exitCode: number; -} - -export interface LaunchJobDTO { - id: string; - study_id: string; - status: JobStatus; - creation_date: string; - completion_date: string; - msg: string; - output_id: string; - exit_code: number; -} - -export enum RoleType { - ADMIN = 40, - RUNNER = 30, - WRITER = 20, - READER = 10, -} - -export interface RoleDTO { - group_id: string; - group_name: string; - identity_id: number; - type: RoleType; -} - -export interface RoleCreationDTO { - group_id: string; - identity_id: number; - type: RoleType; -} - -export interface UserDTO { - id: number; - name: string; -} - -export interface UserRoleDTO { - id: number; - name: string; - role: RoleType; -} - -export interface GroupDTO { - id: string; - name: string; -} - -export interface JWTGroup { - id: string; - name: string; - role: RoleType; -} - -export interface UserInfo { - user: string; - groups: Array; - id: number; - impersonator: number; - type: string; - accessToken: string; - refreshToken: string; - expirationDate?: Moment; -} - -export interface Identity { - id: number; - name: string; - type: string; -} - -export interface IdentityDTO { - id: number; - name: string; - roles: Array; -} - -export interface BotDTO { - id: number; - name: string; - owner: number; - isAuthor: boolean; -} - -export interface BotRoleCreateDTO { - group: string; - role: RoleType; -} - -export interface BotCreateDTO { - name: string; - is_author: boolean; - roles: Array; -} - -export interface BotIdentityDTO { - id: number; - name: string; - isAuthor: boolean; - roles: Array; -} - -export interface UserToken { - user: UserDTO; - bots: Array; -} - -export interface UserGroup { - group: GroupDTO; - users: Array; -} - -export interface MatrixType { - columns: Array; - index: Array; - data: Array>; -} - -export interface MatrixInfoDTO { - id: string; - name: string; -} - -export interface MatrixDataSetDTO { - id: string; - name: string; - public: boolean; - groups: Array; - matrices: Array; - owner: { - id: number; - name: string; - }; - created_at: string; - updated_at: string; -} - -export interface MatrixDataSetUpdateDTO { - name: string; - groups: Array; - public: boolean; -} - -export interface MatrixDTO { - width: number; - height: number; - index: Array; - columns: Array; - data: Array>; - created_at: number; - id: string; -} - -export interface CommandDTO { - id?: string; - action: string; - args: object; -} - -export enum WSEvent { - STUDY_CREATED = "STUDY_CREATED", - STUDY_DELETED = "STUDY_DELETED", - STUDY_EDITED = "STUDY_EDITED", - STUDY_JOB_STARTED = "STUDY_JOB_STARTED", - STUDY_JOB_LOG_UPDATE = "STUDY_JOB_LOG_UPDATE", - STUDY_JOB_COMPLETED = "STUDY_JOB_COMPLETED", - STUDY_JOB_STATUS_UPDATE = "STUDY_JOB_STATUS_UPDATE", - STUDY_VARIANT_GENERATION_COMMAND_RESULT = "STUDY_VARIANT_GENERATION_COMMAND_RESULT", - TASK_ADDED = "TASK_ADDED", - TASK_RUNNING = "TASK_RUNNING", - TASK_COMPLETED = "TASK_COMPLETED", - TASK_FAILED = "TASK_FAILED", - DOWNLOAD_CREATED = "DOWNLOAD_CREATED", - DOWNLOAD_READY = "DOWNLOAD_READY", - DOWNLOAD_EXPIRED = "DOWNLOAD_EXPIRED", - DOWNLOAD_FAILED = "DOWNLOAD_FAILED", - MESSAGE_INFO = "MESSAGE_INFO", - MAINTENANCE_MODE = "MAINTENANCE_MODE", -} - -export enum DefaultFilterKey { - USERS = "v2.studylisting.filter.user", - GROUPS = "v2.studylisting.filter.group", - VERSIONS = "v2.studylisting.filter.version", - MANAGED = "v2.studylisting.filter.managed", - SORTING = "v2.studylisting.filter.sorting", - FOLDER = "v2.studylisting.filter.folder", - FAVORITE_STUDIES = "v2.studylisting.favorite", - TAGS = "v2.studylisting.filter.tag", -} - -export interface WSMessage { - type: string; - payload: unknown; -} - -export interface WSLogMessage { - log: string; - job_id: string; - study_id: string; -} - -export type Components = { - [item: string]: () => ReactNode; -}; - -export interface CommandResultDTO { - study_id: string; - id: string; - success: boolean; - message: string; -} - -export interface TaskResult { - success: boolean; - message: string; - return_value?: string; -} - -export interface TaskLogDTO { - id: string; - message: string; -} - -export enum TaskStatus { - PENDING = 1, - RUNNING = 2, - COMPLETED = 3, - FAILED = 4, - TIMEOUT = 5, - CANCELLED = 6, -} - -export interface TaskDTO { - id: string; - name: string; - owner?: number; - status: TaskStatus; - creation_date_utc: string; - completion_date_utc?: string; - result?: TaskResult; - logs?: Array; - type?: string; - ref_id?: string; -} - -export interface TaskEventPayload { - id: string; - message: string; -} - -export interface Cluster { - id: string; - name: string; - enabled: boolean; -} - -export interface Link { - filters_synthesis: Array; - filters_year: Array; -} - -export interface Area { - name: string; - links: { [elm: string]: Link }; - thermals: Array; - renewables: Array; - filters_synthesis: Array; - filters_year: Array; -} -export interface Set { - name?: string; - inverted_set: boolean; - areas?: Array; - output: boolean; - filters_synthesis: Array; - filters_year: Array; -} - -export interface Simulation { - name: string; - date: string; - mode: string; - nbyears: number; - synthesis: boolean; - by_year: boolean; - error: boolean; -} - -export interface FileStudyTreeConfigDTO { - study_path: string; - path: string; - study_id: string; - version: number; - output_path?: string; - areas: { [elm: string]: Area }; - sets: { [elm: string]: Set }; - outputs: { [elm: string]: Simulation }; - bindings: Array; - store_new_set: boolean; - archive_input_series: Array; - enr_modelling: string; -} - -export enum StudyOutputDownloadType { - LINK = "LINK", - DISTRICT = "DISTRICT", - AREA = "AREA", -} - -export enum StudyOutputDownloadLevelDTO { - ANNUAL = "annual", - MONTHLY = "monthly", - WEEKLY = "weekly", - DAILY = "daily", - HOURLY = "hourly", -} - -export interface StudyOutputDownloadDTO { - type: StudyOutputDownloadType; - years?: Array; - level: StudyOutputDownloadLevelDTO; - filterIn?: string; - filterOut?: string; - filter?: Array; - columns?: Array; - synthesis: boolean; - includeClusters: boolean; -} - -export interface MatrixIndex { - start_date: string; - steps: number; - first_week_size: number; - level: StudyOutputDownloadLevelDTO; -} - -export interface MatrixAggregationResult { - index: MatrixIndex; - data: { - [id: string]: { - [elm: string]: { - [item: string]: Array; - }; - }; - }; - warnings: Array; -} - -export interface NodeProperties { - id: string; - name: string; - x: number; - y: number; - color: string; - rgbColor: Array; - size: { width: number; height: number }; - highlighted?: boolean; -} - -export interface LinkSynthesis { - [index: string]: object; -} - -export interface AreasSynthesis { - name: string; - links: LinkSynthesis; - thermals: string; - renewables: Array; - // eslint-disable-next-line camelcase - filters_synthesis: Array; - // eslint-disable-next-line camelcase - filters_year: Array; -} - -export interface AreasNameSynthesis { - [index: string]: AreasSynthesis; -} - -export interface StudyProperties { - archiveInputSeries: Array; - areas: AreasNameSynthesis; - bindings: Array; - enrModelling: string; - outputPath: string; - outputs: string; - path: string; - sets: string; - storeNewSet: boolean; - studyId: string; - studyPath: string; - version: number; -} - -export interface LinkProperties { - source: string; - target: string; -} - -export interface AreaLayerColor { - [key: number]: string; -} -export interface AreaLayerXandY { - [key: number]: string; -} - -export interface AreaUI { - id: string; - // eslint-disable-next-line camelcase - color_b: number; - // eslint-disable-next-line camelcase - color_g: number; - // eslint-disable-next-line camelcase - color_r: number; - layers: string; - x: number; - y: number; -} - -export interface SingleAreaConfig { - layerColor: AreaLayerColor; - layerX: AreaLayerXandY; - layerY: AreaLayerXandY; - ui: AreaUI; -} - -export interface AreasConfig { - [index: string]: SingleAreaConfig; -} - -export interface UpdateAreaUi { - x: number; - y: number; - // eslint-disable-next-line camelcase - color_rgb: Array; -} - -export interface LinkCreationInfo { - area1: string; - area2: string; -} - -export interface AreaCreationDTO { - name: string; - type: object; - metadata?: object; - set?: Array; -} - -export interface AreaInfoDTO extends AreaCreationDTO { - id: string; - thermals: Array; -} - -export const isNode = (el: NodeProperties | LinkProperties): boolean => - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (el as any).id !== undefined; - -export default {}; diff --git a/webapp_v2/src/components/common/ErrorSnackBar.tsx b/webapp_v2/src/components/common/ErrorSnackBar.tsx deleted file mode 100644 index cf479c0d29..0000000000 --- a/webapp_v2/src/components/common/ErrorSnackBar.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { AxiosError } from "axios"; -import { OptionsObject, SnackbarKey, SnackbarMessage } from "notistack"; -import SnackErrorMessage from "./SnackErrorMessage"; - -export type SnackbarDetails = { - status: string; - description: string; - exception: string; -}; - -const enqueueErrorSnackbar = ( - enqueueSnackbar: ( - message: SnackbarMessage, - options?: OptionsObject | undefined - ) => SnackbarKey, - message: SnackbarMessage, - details: AxiosError -) => - enqueueSnackbar(message, { - variant: "error", - persist: true, - content: (key, msg) => ( - - ), - }); - -export default enqueueErrorSnackbar; diff --git a/webapp_v2/src/components/common/SelectSingle.tsx b/webapp_v2/src/components/common/SelectSingle.tsx deleted file mode 100644 index f1fcd05334..0000000000 --- a/webapp_v2/src/components/common/SelectSingle.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { - FormControl, - InputLabel, - ListItemText, - MenuItem, - Select, - SelectChangeEvent, - SxProps, - Theme, -} from "@mui/material"; -import { GenericInfo } from "../../common/types"; - -interface Props { - name: string; - list: Array; - data: string | undefined; - setValue: (data: string) => void; - sx?: SxProps | undefined; - placeholder?: string; -} - -function SelectSingle(props: Props) { - const { name, list, data, setValue, placeholder, sx } = props; - - const handleChange = (event: SelectChangeEvent) => { - const { - target: { value }, - } = event; - setValue(value); - }; - - return ( - - - {name} - - - - ); -} - -SelectSingle.defaultProps = { - sx: { m: 0, width: 200 }, - placeholder: undefined, -}; - -export default SelectSingle; diff --git a/webapp_v2/src/components/common/loaders/MainContentLoader/index.test.tsx b/webapp_v2/src/components/common/loaders/MainContentLoader/index.test.tsx deleted file mode 100644 index 65bd94f958..0000000000 --- a/webapp_v2/src/components/common/loaders/MainContentLoader/index.test.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { render, unmountComponentAtNode } from "react-dom"; -import { screen } from "@testing-library/react"; -import MainContentLoader from "./index"; - -/** ******************************************* */ -/* Test */ -/** ******************************************* */ - -describe("Test MainContentLoader component", (): void => { - let container: HTMLElement | null = null; - beforeEach((): void => { - // Sets up a DOM element as a render target - container = document.createElement("div"); - - // We attach the container to 'document' - document.body.appendChild(container); - }); - - afterEach((): void => { - // clean - if (container) { - unmountComponentAtNode(container); - container.remove(); - container = null; - } - }); - - it("Test 1", (): void => {}); -}); diff --git a/webapp_v2/src/components/common/loaders/MainContentLoader/index.tsx b/webapp_v2/src/components/common/loaders/MainContentLoader/index.tsx deleted file mode 100644 index 30840e8ecd..0000000000 --- a/webapp_v2/src/components/common/loaders/MainContentLoader/index.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import "./style.css"; -import { Box } from "@mui/material"; -import logo from "./logo.png"; - -function MainContentLoader() { - return ( - - - logo -
- - - ); -} - -export default MainContentLoader; diff --git a/webapp_v2/src/components/common/loaders/MainContentLoader/logo.png b/webapp_v2/src/components/common/loaders/MainContentLoader/logo.png deleted file mode 100644 index 009001e8d0..0000000000 Binary files a/webapp_v2/src/components/common/loaders/MainContentLoader/logo.png and /dev/null differ diff --git a/webapp_v2/src/components/common/loaders/MainContentLoader/style.css b/webapp_v2/src/components/common/loaders/MainContentLoader/style.css deleted file mode 100644 index 8edc22eff4..0000000000 --- a/webapp_v2/src/components/common/loaders/MainContentLoader/style.css +++ /dev/null @@ -1,5158 +0,0 @@ -/**===== nest3 =====*/ -.nest3 { - display: block; - position: absolute; - height: 94px; - width: 94px; - border: 2px solid transparent; - border-top-color: #002a5e; - box-shadow: 0 0 5px #00a3ca; - border-radius: 50%; - -webkit-animation: spin9 1.5s ease infinite; - animation: spin9 1.5s ease infinite; -} - -.nest3:before { - content: ""; - position: absolute; - top: 7px; - right: 7px; - bottom: 7px; - left: 7px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #002a5e; - box-shadow: 0 0 5px #00a3ca; - -webkit-animation: spin9_x 1s linear infinite; - animation: spin9_x 1s linear infinite; -} - -.nest3:after { - content: ""; - position: absolute; - top: 15px; - right: 15px; - bottom: 15px; - left: 15px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #002a5e; - box-shadow: 0 0 5px #00a3ca; - -webkit-animation: spin9 1.5s linear infinite; - animation: spin9 1.5s linear infinite; -} - -@-webkit-keyframes spin9 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin9 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@-webkit-keyframes spin9_x { - 0% { - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - } - 100% { - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - } -} -@keyframes spin9_x { - 0% { - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - } - 100% { - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - } -} - -/* -Found at : https://codepen.io/mrsahar/pen/pMxyrE -*/ - -/* === -By : Sahar Ali Raza -Year: 2018 - 2019 -*/ - -/* ======= PreLoader CSS Start ========*/ - -/* -/*=== mask === */ -/*-- This code is for mask over all web content which will be -fade out when your webpage get loaded. - --*/ -#mask { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - /* you can change color of mask here*/ - background: #f3f3f3; - z-index: 99; - /* makes sure it stays on top */ -} - -/*=== extra preloading text=== */ -/** this code can be use for adding loading text under preloader */ -#laoding_text { - display: block; - position: absolute; - font-family: sans-serif, arial; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: 50px 0 0 -25px; - padding: 2px 0; -} - -/* === main 50 preloaders code begins === */ -/**===== circle1 =====*/ -#circle1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 4px rgba(0, 0, 0, 0.25) solid; - border-top: 4px black solid; - border-bottom: 4px black solid; - border-radius: 50%; - -webkit-animation: spin1 1s infinite linear; - animation: spin1 1s infinite linear; -} - -@-webkit-keyframes spin1 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin1 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of circle1 */ -/*-----------------------------------------------------------------------*/ -/**===== circle2 =====*/ -#circle2 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 4px rgba(0, 0, 0, 0.25) solid; - border-top: 4px black solid; - border-radius: 50%; - -webkit-animation: spin2 1s infinite linear; - animation: spin2 1s infinite linear; -} - -@-webkit-keyframes spin2 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin2 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of circle2 */ -/*-----------------------------------------------------------------------*/ -/**===== circle3 =====*/ -#circle3 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 4px rgba(0, 0, 0, 0.25) solid; - border-top: 4px black solid; - border-right: 4px black solid; - border-bottom: 4px black solid; - border-radius: 50%; - -webkit-animation: spin3 1s infinite linear; - animation: spin3 1s infinite linear; -} - -@-webkit-keyframes spin3 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin3 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of circle3 */ -/*-----------------------------------------------------------------------*/ -/**===== circle4 =====*/ -#circle4 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 4px rgba(0, 0, 0, 0.25) solid; - border-top: 4px black solid; - border-radius: 50%; - -webkit-animation: spin4 1s infinite linear; - animation: spin4 1s infinite linear; -} - -@-webkit-keyframes spin4 { - from { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } - to { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } -} -@keyframes spin4 { - from { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } - to { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } -} -/** END of circle4 */ -/*-----------------------------------------------------------------------*/ -/**===== circle5 =====*/ -#circle5 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 4px rgba(0, 0, 0, 0.25) solid; - border-top: 4px #008744 solid; - border-right: 4px #0057e7 solid; - border-bottom: 4px #d62d20 solid; - border-radius: 50%; - -webkit-animation: spin5 1s infinite linear; - animation: spin5 1s infinite linear; -} - -@-webkit-keyframes spin5 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin5 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of circle5 */ -/*-----------------------------------------------------------------------*/ -/**===== circle6 =====*/ -#circle6 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 4px rgba(0, 0, 0, 0.25) solid; - border-top: 10px #008744 solid; - border-right: 10px #0057e7 solid; - border-bottom: 10px #d62d20 solid; - border-left: 10px #ffa700 solid; - border-radius: 50%; - -webkit-animation: spin6 1s infinite linear; - animation: spin6 1s infinite linear; -} - -@-webkit-keyframes spin6 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin6 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of circle6 */ -/*-----------------------------------------------------------------------*/ -/**===== nest1 =====*/ -#nest1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 2px solid transparent; - border-top-color: #000000; - border-radius: 50%; - -webkit-animation: spin7 1.5s ease infinite; - animation: spin7 1.5s ease infinite; -} - -#nest1:before { - content: ""; - position: absolute; - top: 7px; - right: 7px; - bottom: 7px; - left: 7px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #000000; - -webkit-animation: spin7 3s linear infinite; - animation: spin7 3s linear infinite; -} - -#nest1:after { - content: ""; - position: absolute; - top: 15px; - right: 15px; - bottom: 15px; - left: 15px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #000000; - -webkit-animation: spin7 1.5s ease infinite; - animation: spin7 1.5s ease infinite; -} - -@-webkit-keyframes spin7 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin7 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of nest1 */ -/*-----------------------------------------------------------------------*/ -/**===== nest2 =====*/ -#nest2 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 2px solid transparent; - border-top-color: #000000; - box-shadow: 0 0 5px skyblue; - border-radius: 50%; - -webkit-animation: spin8 2s linear infinite; - animation: spin8 2s linear infinite; -} - -#nest2:before { - content: ""; - position: absolute; - top: 7px; - right: 7px; - bottom: 7px; - left: 7px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #000000; - box-shadow: 0 0 5px skyblue; - -webkit-animation: spin8 0.9s linear infinite; - animation: spin8 0.9s linear infinite; -} - -#nest2:after { - content: ""; - position: absolute; - top: 15px; - right: 15px; - bottom: 15px; - left: 15px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #000000; - box-shadow: 0 0 5px skyblue; - -webkit-animation: spin8 1.5s linear infinite; - animation: spin8 1.5s linear infinite; -} - -@-webkit-keyframes spin8 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin8 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of nest2 */ -/*-----------------------------------------------------------------------*/ -/** END of nest3 */ -/*-----------------------------------------------------------------------*/ -/**===== nest4 =====*/ -#nest4 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 2px solid transparent; - border-top-color: #000000; - border-radius: 50%; - -webkit-animation: spin10_y 2s linear infinite; - animation: spin10_y 2s linear infinite; -} - -#nest4:before { - content: ""; - position: absolute; - top: 7px; - right: 7px; - bottom: 7px; - left: 7px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #000000; - -webkit-animation: spin10_x 3s linear infinite; - animation: spin10_x 3s linear infinite; -} - -#nest4:after { - content: ""; - position: absolute; - top: 15px; - right: 15px; - bottom: 15px; - left: 15px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #000000; - -webkit-animation: spin10_x 1.5s linear infinite; - animation: spin10_x 1.5s linear infinite; -} - -@-webkit-keyframes spin10_x { - 0% { - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - } - 100% { - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - } -} -@keyframes spin10_x { - 0% { - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - } - 100% { - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - } -} -@-webkit-keyframes spin10_y { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 100% { - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - } -} -@keyframes spin10_y { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 100% { - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - } -} -/** END of nest4 */ -/*-----------------------------------------------------------------------*/ -/**===== nest5 =====*/ -#nest5 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 2px solid transparent; - border-top-color: #008744; - border-radius: 50%; - -webkit-animation: spin11 2s linear infinite; - animation: spin11 2s linear infinite; -} - -#nest5:before { - content: ""; - position: absolute; - top: 7px; - right: 7px; - bottom: 7px; - left: 7px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #d62d20; - -webkit-animation: spin11 3s linear infinite; - animation: spin11 3s linear infinite; -} - -#nest5:after { - content: ""; - position: absolute; - top: 15px; - right: 15px; - bottom: 15px; - left: 15px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #ffa700; - -webkit-animation: spin11 1.5s linear infinite; - animation: spin11 1.5s linear infinite; -} - -@-webkit-keyframes spin11 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin11 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of nest5*/ -/*-----------------------------------------------------------------------*/ -/**===== nest6 =====*/ -#nest6 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 2px solid transparent; - border-top-color: #008744; - border-radius: 50%; - -webkit-animation: spin12 2s linear infinite; - animation: spin12 2s linear infinite; -} - -#nest6:before { - content: ""; - position: absolute; - top: 7px; - right: 7px; - bottom: 7px; - left: 7px; - border: 2px solid transparent; - border-radius: 50%; - border-top-color: #ffa700; - -webkit-animation: spin12 3s linear infinite; - animation: spin12 3s linear infinite; -} - -#nest6:after { - content: ""; - position: absolute; - top: 15px; - right: 15px; - bottom: 15px; - left: 15px; - border: 2px solid transparent; - border-radius: 50%; - background: #0057e7; - border-top-color: #d62d20; - -webkit-animation: spin12 1.5s linear infinite; - animation: spin12 1.5s linear infinite; -} - -@-webkit-keyframes spin12 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spin12 { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of nest6 */ -/*-----------------------------------------------------------------------*/ -/**===== bars1 =====*/ -#bars1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#bars1 span { - position: absolute; - display: block; - bottom: 10px; - width: 9px; - height: 5px; - background: rgba(0, 0, 0, 0.25); - -webkit-animation: bars1 1.5s infinite ease-in-out; - animation: bars1 1.5s infinite ease-in-out; -} - -#bars1 span:nth-child(2) { - left: 11px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#bars1 span:nth-child(3) { - left: 22px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#bars1 span:nth-child(4) { - left: 33px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; -} - -#bars1 span:nth-child(5) { - left: 44px; - -webkit-animation-delay: 0.8s; - animation-delay: 0.8s; -} - -@keyframes bars1 { - 0% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 25% { - height: 30px; - -webkit-transform: translateY(15px); - transform: translateY(15px); - -webkit-transform: translateY(15px); - transform: translateY(15px); - background: #000000; - } - 50% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 100% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } -} -@-webkit-keyframes bars1 { - 0% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 25% { - height: 30px; - -webkit-transform: translateY(15px); - transform: translateY(15px); - background: #000000; - } - 50% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 100% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } -} -/** END of bars1 */ -/*-----------------------------------------------------------------------*/ -/**===== bars2 =====*/ -#bars2 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#bars2 span { - position: absolute; - display: block; - bottom: 10px; - width: 9px; - height: 5px; - background: rgba(0, 0, 0, 0.25); - -webkit-animation: bars2 2s infinite ease-in-out; - animation: bars2 2s infinite ease-in-out; -} - -#bars2 span:nth-child(2) { - left: 11px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#bars2 span:nth-child(3) { - left: 22px; - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} - -#bars2 span:nth-child(4) { - left: 33px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#bars2 span:nth-child(5) { - left: 44px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -@keyframes bars2 { - 0% { - height: 5px; - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: rgba(0, 0, 0, 0.25); - } - 25% { - height: 30px; - -webkit-transform: translateX(5px); - transform: translateX(5px); - -webkit-transform: translateX(5px); - transform: translateX(5px); - background: #000000; - } - 50% { - height: 5px; - -webkit-transform: translateX(10px); - transform: translateX(10px); - -webkit-transform: translateX(10px); - transform: translateX(10px); - background: rgba(0, 0, 0, 0.25); - } - 100% { - height: 5px; - -webkit-transform: translateX(15px); - transform: translateX(15px); - -webkit-transform: translateX(15px); - transform: translateX(15px); - background: rgba(0, 0, 0, 0.25); - } -} -@-webkit-keyframes bars2 { - 0% { - height: 5px; - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: rgba(0, 0, 0, 0.25); - } - 25% { - height: 30px; - -webkit-transform: translateX(5px); - transform: translateX(5px); - background: #000000; - } - 50% { - height: 5px; - -webkit-transform: translateX(10px); - transform: translateX(10px); - background: rgba(0, 0, 0, 0.25); - } - 100% { - height: 5px; - -webkit-transform: translateX(15px); - transform: translateX(15px); - background: rgba(0, 0, 0, 0.25); - } -} -/** END of bars2 */ -/*-----------------------------------------------------------------------*/ -/**===== bars3 =====*/ -#bars3 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#bars3 span { - position: absolute; - display: block; - bottom: 10px; - width: 9px; - height: 15px; - background: rgba(0, 0, 0, 0.25); - -webkit-animation: bars3 2s infinite ease-in; - animation: bars3 2s infinite ease-in; -} - -#bars3 span:nth-child(2) { - left: 11px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#bars3 span:nth-child(3) { - left: 22px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#bars3 span:nth-child(4) { - left: 33px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; -} - -#bars3 span:nth-child(5) { - left: 44px; - -webkit-animation-delay: 0.8s; - animation-delay: 0.8s; -} - -@keyframes bars3 { - 0% { - background: rgba(0, 0, 0, 0.25); - } - 25% { - background: #000000; - } - 50% { - background: rgba(0, 0, 0, 0.25); - } - 100% { - background: rgba(0, 0, 0, 0.25); - } -} -@-webkit-keyframes bars3 { - 0% { - background: rgba(0, 0, 0, 0.25); - } - 25% { - background: #000000; - } - 50% { - background: rgba(0, 0, 0, 0.25); - } - 100% { - background: rgba(0, 0, 0, 0.25); - } -} -/** END of bars3 */ -/*-----------------------------------------------------------------------*/ -/**===== bars4 =====*/ -#bars4 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#bars4 span { - display: block; - bottom: 10px; - width: 9px; - height: 15px; - background: rgba(0, 0, 0, 0.25); - position: absolute; - -webkit-animation: bars4 2s infinite ease-in-out; - animation: bars4 2s infinite ease-in-out; -} - -#bars4 span:nth-child(2) { - left: 11px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#bars4 span:nth-child(3) { - left: 22px; - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} - -#bars4 span:nth-child(4) { - left: 33px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#bars4 span:nth-child(5) { - left: 44px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -@keyframes bars4 { - 0% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: rgba(0, 0, 0, 0.25); - } - 25% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: #000000; - } - 50% { - -webkit-transform: translateX(15px); - transform: translateX(15px); - -webkit-transform: translateX(15px); - transform: translateX(15px); - background: rgba(0, 0, 0, 0.25); - } - 100% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: rgba(0, 0, 0, 0.25); - } -} -@-webkit-keyframes bars4 { - 0% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: rgba(0, 0, 0, 0.25); - } - 25% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: #000000; - } - 50% { - -webkit-transform: translateX(15px); - transform: translateX(15px); - background: rgba(0, 0, 0, 0.25); - } - 100% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: rgba(0, 0, 0, 0.25); - } -} -/** END of bars4 */ -/*-----------------------------------------------------------------------*/ -/**===== bars5 =====*/ -#bars5 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#bars5 span { - position: absolute; - display: block; - bottom: 10px; - width: 9px; - height: 5px; - background: rgba(0, 0, 0, 0.25); - -webkit-animation: bars5 3s infinite ease-in-out; - animation: bars5 3s infinite ease-in-out; -} - -#bars5 span:nth-child(2) { - left: 11px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#bars5 span:nth-child(3) { - left: 22px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#bars5 span:nth-child(4) { - left: 33px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; -} - -#bars5 span:nth-child(5) { - left: 44px; - -webkit-animation-delay: 0.8s; - animation-delay: 0.8s; -} - -@keyframes bars5 { - 0% { - height: 5px; - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: skyblue; - } - 25% { - height: 30px; - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: #008744; - } - 50% { - height: 30px; - -webkit-transform: translateX(10px); - transform: translateX(10px); - -webkit-transform: translateX(10px); - transform: translateX(10px); - background: skyblue; - } - 100% { - height: 5px; - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: #008744; - } -} -@-webkit-keyframes bars5 { - 0% { - height: 5px; - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: skyblue; - } - 25% { - height: 30px; - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: #008744; - } - 50% { - height: 30px; - -webkit-transform: translateX(10px); - transform: translateX(10px); - background: skyblue; - } - 100% { - height: 5px; - -webkit-transform: translateX(0px); - transform: translateX(0px); - background: #008744; - } -} -/** END of bars5 */ -/*-----------------------------------------------------------------------*/ -/**===== bars6 =====*/ -#bars6 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#bars6 span { - position: absolute; - display: block; - bottom: 10px; - width: 9px; - height: 5px; - background: rgba(0, 0, 0, 0.25); - -webkit-animation: bars6 1.5s infinite ease-in-out; - animation: bars6 1.5s infinite ease-in-out; -} - -#bars6 span:nth-child(2) { - left: 11px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#bars6 span:nth-child(3) { - left: 22px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#bars6 span:nth-child(4) { - left: 33px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; -} - -#bars6 span:nth-child(5) { - left: 44px; - -webkit-animation-delay: 0.8s; - animation-delay: 0.8s; -} - -@keyframes bars6 { - 0% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 25% { - height: 30px; - -webkit-transform: translateY(15px); - transform: translateY(15px); - -webkit-transform: translateY(15px); - transform: translateY(15px); - background: #0057e7; - } - 50% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 100% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } -} -@-webkit-keyframes bars6 { - 0% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 25% { - height: 30px; - -webkit-transform: translateY(15px); - transform: translateY(15px); - background: #0057e7; - } - 50% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 100% { - height: 5px; - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } -} -/** END of bars6 */ -/*-----------------------------------------------------------------------*/ -/**===== dots1 =====*/ -#dots1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#dots1 span { - position: absolute; - width: 10px; - height: 10px; - background: rgba(0, 0, 0, 0.25); - border-radius: 50%; - -webkit-animation: dots1 1s infinite ease-in-out; - animation: dots1 1s infinite ease-in-out; -} - -#dots1 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#dots1 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} - -#dots1 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#dots1 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -@keyframes dots1 { - 0% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 50% { - -webkit-transform: translateY(10px); - transform: translateY(10px); - -webkit-transform: translateY(10px); - transform: translateY(10px); - background: #000000; - } - 100% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } -} -@-webkit-keyframes dots1 { - 0% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } - 50% { - -webkit-transform: translateY(10px); - transform: translateY(10px); - background: #000000; - } - 100% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: rgba(0, 0, 0, 0.25); - } -} -/** END of dots1 */ -/*-----------------------------------------------------------------------*/ -/**===== dots2 =====*/ -#dots2 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#dots2 span { - position: absolute; - width: 10px; - height: 10px; - background: rgba(0, 0, 0, 0.25); - border-radius: 50%; - -webkit-animation: dots2 1s infinite ease-in-out; - animation: dots2 1s infinite ease-in-out; -} - -#dots2 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#dots2 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#dots2 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; -} - -#dots2 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 0.8s; - animation-delay: 0.8s; -} - -@keyframes dots2 { - 0% { - -webkit-transform: translateX(5px); - transform: translateX(5px); - -webkit-transform: translateX(5px); - transform: translateX(5px); - background: #000000; - } - 50% { - -webkit-transform: translateX(-5px); - transform: translateX(-5px); - -webkit-transform: translateX(-5px); - transform: translateX(-5px); - background: #000000; - } - 100% { - -webkit-transform: translateX(7px); - transform: translateX(7px); - -webkit-transform: translateX(7px); - transform: translateX(7px); - background: #000000; - } -} -@-webkit-keyframes dots2 { - 0% { - -webkit-transform: translateX(5px); - transform: translateX(5px); - background: #000000; - } - 50% { - -webkit-transform: translateX(-5px); - transform: translateX(-5px); - background: #000000; - } - 100% { - -webkit-transform: translateX(7px); - transform: translateX(7px); - background: #000000; - } -} -/** END of dots2 */ -/*-----------------------------------------------------------------------*/ -/**===== dots3 =====*/ -#dots3 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#dots3 span { - position: absolute; - width: 10px; - height: 10px; - background: rgba(0, 0, 0, 0.25); - border-radius: 50%; - -webkit-animation: dots3 1.5s infinite ease-out; - animation: dots3 1.5s infinite ease-out; -} - -#dots3 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#dots3 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#dots3 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; -} - -#dots3 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 0.8s; - animation-delay: 0.8s; -} - -@keyframes dots3 { - 0% { - background: #000000; - -webkit-transform: scale(0.1); - transform: scale(0.1); - -webkit-transform: scale(0.1); - transform: scale(0.1); - } - 50% { - background: rgba(0, 0, 0, 0.25); - -webkit-transform: scale(0.5); - transform: scale(0.5); - -webkit-transform: scale(0.5); - transform: scale(0.5); - } - 100% { - background: #000000; - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } -} -@-webkit-keyframes dots3 { - 0% { - background: #000000; - -webkit-transform: scale(0.1); - transform: scale(0.1); - } - 50% { - background: rgba(0, 0, 0, 0.25); - -webkit-transform: scale(0.5); - transform: scale(0.5); - } - 100% { - background: #000000; - -webkit-transform: scale(1); - transform: scale(1); - } -} -/** END of dots3 */ -/*-----------------------------------------------------------------------*/ -/**===== dots4 =====*/ -#dots4 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#dots4 span { - position: absolute; - width: 10px; - height: 10px; - background: rgba(0, 0, 0, 0.25); - border-radius: 50%; - background: #000000; - -webkit-animation: dots4 1.7s infinite ease-in-out both; - animation: dots4 1.7s infinite ease-in-out both; - margin-right: 5px; -} - -#dots4 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; -} - -#dots4 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#dots4 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#dots4 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 0.1s; - animation-delay: 0.1s; -} - -@keyframes dots4 { - 0%, - 80%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transform: scale(0); - transform: scale(0); - opacity: 0; - } - 40% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } -} -@-webkit-keyframes dots4 { - 0%, - 80%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - opacity: 0; - } - 40% { - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } -} -/** END of dots4 */ -/*-----------------------------------------------------------------------*/ -/**===== dots5 =====*/ -#dots5 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#dots5 span { - position: absolute; - width: 10px; - height: 10px; - background: rgba(0, 0, 0, 0.25); - border-radius: 50%; - -webkit-animation: dots5 1s infinite ease-in-out; - animation: dots5 1s infinite ease-in-out; -} - -#dots5 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#dots5 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} - -#dots5 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#dots5 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -@keyframes dots5 { - 0% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: #d62d20; - } - 25% { - -webkit-transform: translateY(10px); - transform: translateY(10px); - -webkit-transform: translateY(10px); - transform: translateY(10px); - background: #ffa700; - } - 50% { - -webkit-transform: translateY(10px); - transform: translateY(10px); - -webkit-transform: translateY(10px); - transform: translateY(10px); - background: #008744; - } - 100% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: #0057e7; - } -} -@-webkit-keyframes dots5 { - 0% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: #d62d20; - } - 25% { - -webkit-transform: translateY(10px); - transform: translateY(10px); - background: #ffa700; - } - 50% { - -webkit-transform: translateY(10px); - transform: translateY(10px); - background: #008744; - } - 100% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - background: #0057e7; - } -} -/** END of dots5 */ -/*-----------------------------------------------------------------------*/ -/**===== dots6 =====*/ -#dots6 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#dots6 span { - position: absolute; - width: 10px; - height: 10px; - background: rgba(0, 0, 0, 0.25); - border-radius: 50%; - background: #ffa700; - -webkit-animation: dots6 1s infinite ease-in-out both; - animation: dots6 1s infinite ease-in-out both; - margin-right: 5px; -} - -#dots6 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -#dots6 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 1s; - animation-delay: 1s; -} - -#dots6 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -#dots6 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 1s; - animation-delay: 1s; -} - -@keyframes dots6 { - 0%, - 80%, - 100% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - background: #d62d20; - } - 40%, - 60% { - -webkit-transform: scale(0.5); - transform: scale(0.5); - -webkit-transform: scale(0.5); - transform: scale(0.5); - background: #008744; - } -} -@-webkit-keyframes dots6 { - 0%, - 80%, - 100% { - -webkit-transform: scale(1); - transform: scale(1); - background: #d62d20; - } - 40%, - 60% { - -webkit-transform: scale(0.5); - transform: scale(0.5); - background: #008744; - } -} -/** END of dots6 */ -/*-----------------------------------------------------------------------*/ -/**===== spinner1 =====*/ -#spinner1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 5px solid transparent; - border-top-color: #000000; - border-bottom-color: #000000; - border-radius: 50%; - -webkit-animation: spinner1 1s linear infinite; - animation: spinner1 1s linear infinite; -} - -#spinner1:after { - content: ""; - position: absolute; - top: 5px; - right: 5px; - bottom: 5px; - left: 5px; - border: 5px solid transparent; - border-radius: 50%; - background: rgba(0, 0, 0, 0.25); -} - -@keyframes spinner1 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@-webkit-keyframes spinner1 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -/** END of spinner1 */ -/*-----------------------------------------------------------------------*/ -/**===== spinner2 =====*/ -#spinner2 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 5px solid transparent; - border-top-color: #000000; - border-bottom-color: #000000; - border-radius: 50%; - -webkit-animation: spinner2 0.5s linear infinite; - animation: spinner2 0.5s linear infinite; -} - -#spinner2:after { - content: ""; - position: absolute; - top: 5px; - right: 5px; - bottom: 5px; - left: 5px; - border: 5px solid transparent; - border-radius: 50%; - background: rgba(0, 0, 0, 0.25); - -webkit-animation: spinner2_after 1s linear infinite; - animation: spinner2_after 1s linear infinite; -} - -@keyframes spinner2 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes spinner2_after { - 0% { - border-top: 5px solid #000000; - border-bottom: 5px solid #000000; - } - 50% { - border-top: 5px solid rgba(0, 0, 0, 0.25); - border-bottom: 5px solid rgba(0, 0, 0, 0.25); - } - 100% { - border-top: 5px solid #000000; - border-bottom: 5px solid #000000; - } -} -@-webkit-keyframes spinner2 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@-webkit-keyframes spinner2_after { - 0% { - border-top: 5px solid #000000; - border-bottom: 5px solid #000000; - } - 50% { - border-top: 5px solid rgba(0, 0, 0, 0.25); - border-bottom: 5px solid rgba(0, 0, 0, 0.25); - } - 100% { - border-top: 5px solid #000000; - border-bottom: 5px solid #000000; - } -} -/** END of spinner2 */ -/*-----------------------------------------------------------------------*/ -/**===== spinner3 =====*/ -#spinner3 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 5px solid transparent; - border-top-color: #000000; - border-bottom-color: #000000; - border-radius: 50%; - -webkit-animation: spinner3 2s linear infinite; - animation: spinner3 2s linear infinite; -} - -#spinner3:after { - content: ""; - position: absolute; - top: 5px; - right: 5px; - bottom: 5px; - left: 5px; - border: 5px solid transparent; - border-radius: 50%; - background: rgba(0, 0, 0, 0.25); - -webkit-animation: spinner2_after 1s linear infinite; - animation: spinner2_after 1s linear infinite; -} - -@keyframes spinner3 { - 0% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } -} -@keyframes spinner3_after { - 0% { - border-top: 5px solid #000000; - border-bottom: 5px solid #000000; - } - 50% { - border-top: 5px solid rgba(0, 0, 0, 0.25); - border-bottom: 5px solid rgba(0, 0, 0, 0.25); - } - 100% { - border-top: 5px solid #000000; - border-bottom: 5px solid #000000; - } -} -@-webkit-keyframes spinner3 { - 0% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } -} -@-webkit-keyframes spinner3_after { - 0% { - border-top: 5px solid #000000; - border-bottom: 5px solid #000000; - } - 50% { - border-top: 5px solid rgba(0, 0, 0, 0.25); - border-bottom: 5px solid rgba(0, 0, 0, 0.25); - } - 100% { - border-top: 5px solid #000000; - border-bottom: 5px solid #000000; - } -} -/** END of spinner3 */ -/*-----------------------------------------------------------------------*/ -/**===== spinner4 =====*/ -#spinner4 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 5px solid transparent; - border-top-color: #000000; - border-bottom-color: #000000; - box-shadow: 0 0 10px #0057e7; - border-radius: 50%; - -webkit-animation: spinner4 1s linear infinite; - animation: spinner4 1s linear infinite; -} - -#spinner4:after { - content: ""; - position: absolute; - top: 5px; - right: 5px; - bottom: 5px; - left: 5px; - border: 5px solid transparent; - border-radius: 50%; - background: rgba(0, 0, 0, 0.25); - -webkit-animation: spinner4_after 2s linear infinite; - animation: spinner4_after 2s linear infinite; -} - -@keyframes spinner4 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@-webkit-keyframes spinner4 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes spinner4_after { - 0% { - background: #008744; - } - 25% { - background: #ffa700; - } - 50% { - background: #0057e7; - } - 100% { - background: #d62d20; - } -} -@-webkit-keyframes spinner4_after { - 0% { - background: #008744; - } - 25% { - background: #ffa700; - } - 50% { - background: #0057e7; - } - 100% { - background: #d62d20; - } -} -/** END of spinner4 */ -/*-----------------------------------------------------------------------*/ -/**===== spinner5 =====*/ -#spinner5 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 5px solid transparent; - border-top-color: #000000; - border-bottom-color: #000000; - box-shadow: 0 0 10px skyblue; - border-radius: 50%; - -webkit-animation: spinner5 0.8s linear infinite; - animation: spinner5 0.8s linear infinite; -} - -#spinner5:after { - content: ""; - position: absolute; - top: 5px; - right: 5px; - bottom: 5px; - left: 5px; - border: 5px solid transparent; - border-radius: 50%; - background: #008744; - -webkit-animation: spinner5_after 1s linear infinite; - animation: spinner5_after 1s linear infinite; -} - -@keyframes spinner5 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes spinner5_after { - 0% { - border-top: 5px solid #0057e7; - border-bottom: 5px solid #0057e7; - } - 50% { - border-top: 5px solid #0057e7; - border-bottom: 5px solid #0057e7; - } - 100% { - border-top: 5px solid #0057e7; - border-bottom: 5px solid #0057e7; - } -} -@-webkit-keyframes spinner5 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@-webkit-keyframes spinner5_after { - 0% { - border-top: 5px solid #0057e7; - border-bottom: 5px solid #0057e7; - } - 50% { - border-top: 5px solid #0057e7; - border-bottom: 5px solid #0057e7; - } - 100% { - border-top: 5px solid #0057e7; - border-bottom: 5px solid #0057e7; - } -} -/** END of spinner5 */ -/*-----------------------------------------------------------------------*/ -/**===== spinner6 =====*/ -#spinner6 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border: 5px solid transparent; - border-top-color: #000000; - border-bottom-color: #000000; - box-shadow: 0 0 10px #d62d20; - border-radius: 50%; - -webkit-animation: spinner6 0.5s linear infinite; - animation: spinner6 0.5s linear infinite; -} - -#spinner6:after { - content: ""; - position: absolute; - top: 5px; - right: 5px; - bottom: 5px; - left: 5px; - border: 5px solid transparent; - border-radius: 50%; - background: #ffa700; - box-shadow: 0 0 5px #d62d20; - -webkit-animation: spinner6_after 1s linear infinite; - animation: spinner6_after 1s linear infinite; -} - -@keyframes spinner6 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes spinner6_after { - 0% { - border-top: 5px solid #d62d20; - border-bottom: 5px solid #d62d20; - } - 50% { - border-top: 5px solid rgba(0, 0, 0, 0.25); - border-bottom: 5px solid rgba(0, 0, 0, 0.25); - } - 100% { - border-top: 5px solid #d62d20; - border-bottom: 5px solid #d62d20; - } -} -@-webkit-keyframes spinner6 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@-webkit-keyframes spinner6_after { - 0% { - border-top: 5px solid #d62d20; - border-bottom: 5px solid #d62d20; - } - 50% { - border-top: 5px solid rgba(0, 0, 0, 0.25); - border-bottom: 5px solid rgba(0, 0, 0, 0.25); - } - 100% { - border-top: 5px solid #d62d20; - border-bottom: 5px solid #d62d20; - } -} -/** END of spinner6 */ -/*-----------------------------------------------------------------------*/ -/**===== square1 =====*/ -#square1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#square1 span { - width: 16px; - height: 16px; - background-color: #000; - display: inline-block; - -webkit-animation: square1 1.7s infinite ease-in-out both; - animation: square1 1.7s infinite ease-in-out both; -} - -#square1 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#square1 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} - -#square1 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#square1 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -@keyframes square1 { - 0%, - 80%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transform: scale(0); - transform: scale(0); - opacity: 0; - } - 40% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } -} -@-webkit-keyframes square1 { - 0%, - 80%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - opacity: 0; - } - 40% { - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } -} -/** END of square1 */ -/*-----------------------------------------------------------------------*/ -/**===== square2 =====*/ -#square2 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#square2 span { - width: 16px; - height: 16px; - background-color: #000; - display: inline-block; - -webkit-animation: square2 2s infinite ease-in-out both; - animation: square2 2s infinite ease-in-out both; -} - -#square2 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#square2 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} - -#square2 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#square2 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -@keyframes square2 { - 0%, - 100% { - -webkit-transform: scale(0.7); - transform: scale(0.7); - -webkit-transform: scale(0.7); - transform: scale(0.7); - opacity: 1; - } - 40%, - 80% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } -} -@-webkit-keyframes square2 { - 0%, - 100% { - -webkit-transform: scale(0.7); - transform: scale(0.7); - opacity: 1; - } - 40%, - 80% { - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } -} -/** END of square2 */ -/*-----------------------------------------------------------------------*/ -/**===== square3 =====*/ -#square3 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#square3 span { - width: 16px; - height: 16px; - background-color: #000; - display: inline-block; - -webkit-animation: square3 1.7s infinite ease-in-out both; - animation: square3 1.7s infinite ease-in-out both; -} - -#square3 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.1s; - animation-delay: 0.1s; -} - -#square3 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; -} - -#square3 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 1.1s; - animation-delay: 1.1s; -} - -#square3 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 1.5s; - animation-delay: 1.5s; -} - -@keyframes square3 { - 0% { - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transform: scale(0); - transform: scale(0); - opacity: 0; - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } - 100% { - -webkit-transform: rotate(60deg); - transform: rotate(60deg); - -webkit-transform: rotate(60deg); - transform: rotate(60deg); - opacity: 0.5; - } -} -@-webkit-keyframes square3 { - 0% { - -webkit-transform: scale(0); - transform: scale(0); - opacity: 0; - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } - 100% { - -webkit-transform: rotate(60deg); - transform: rotate(60deg); - opacity: 0.5; - } -} -/** END of square3 */ -/*-----------------------------------------------------------------------*/ -/**===== square4 =====*/ -#square4 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#square4 span { - width: 16px; - height: 16px; - background-color: #000; - display: inline-block; - -webkit-animation: square4 1.7s infinite ease-in-out both; - animation: square4 1.7s infinite ease-in-out both; -} - -#square4 span:nth-child(1) { - left: 0px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#square4 span:nth-child(2) { - left: 15px; - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} - -#square4 span:nth-child(3) { - left: 30px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} - -#square4 span:nth-child(4) { - left: 45px; - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} - -@keyframes square4 { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 50% { - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - } - 100% { - -webkit-transform: rotateX(180deg); - transform: rotateX(180deg); - -webkit-transform: rotateX(180deg); - transform: rotateX(180deg); - } -} -@-webkit-keyframes square4 { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 50% { - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - } - 100% { - -webkit-transform: rotateX(180deg); - transform: rotateX(180deg); - } -} -/** END of square4 */ -/*-----------------------------------------------------------------------*/ -/**===== square5 =====*/ -#square5 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#square5 span { - width: 16px; - height: 16px; - background-color: #000; - display: inline-block; - -webkit-animation: square5 1.7s infinite ease-in-out both; - animation: square5 1.7s infinite ease-in-out both; -} - -#square5 span:nth-child(1) { - left: 11px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; - background: #d62d20; -} - -#square5 span:nth-child(2) { - left: 22px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; - background: #008744; -} - -#square5 span:nth-child(3) { - left: 33px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; - background: #0057e7; -} - -#square5 span:nth-child(4) { - left: 44px; - -webkit-animation-delay: 0.8s; - animation-delay: 0.8s; - background: #ffa700; -} - -@keyframes square5 { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 50% { - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - } - 100% { - -webkit-transform: rotateX(180deg); - transform: rotateX(180deg); - -webkit-transform: rotateX(180deg); - transform: rotateX(180deg); - } -} -@-webkit-keyframes square5 { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 50% { - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - } - 100% { - -webkit-transform: rotateX(180deg); - transform: rotateX(180deg); - } -} -/** END of square5 */ -/*-----------------------------------------------------------------------*/ -/**===== square6 =====*/ -#square6 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#square6 span { - width: 16px; - height: 16px; - background-color: #000; - display: inline-block; - -webkit-animation: square6 1.7s infinite ease-in-out both; - animation: square6 1.7s infinite ease-in-out both; -} - -#square6 span:nth-child(1) { - left: 11px; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; - background: #d62d20; -} - -#square6 span:nth-child(2) { - left: 22px; - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; - background: #008744; -} - -#square6 span:nth-child(3) { - left: 33px; - -webkit-animation-delay: 0.6s; - animation-delay: 0.6s; - background: #0057e7; -} - -#square6 span:nth-child(4) { - left: 44px; - -webkit-animation-delay: 0.8s; - animation-delay: 0.8s; - background: #ffa700; -} - -@keyframes square6 { - 0%, - 80%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transform: scale(0); - transform: scale(0); - opacity: 0; - } - 40% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } -} -@-webkit-keyframes square6 { - 0%, - 80%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - opacity: 0; - } - 40% { - -webkit-transform: scale(1); - transform: scale(1); - opacity: 1; - } -} -/** END of square6 */ -/*-----------------------------------------------------------------------*/ -/**===== round1 =====*/ -#round1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - -webkit-animation: round1-rotate 2s infinite linear; - animation: round1-rotate 2s infinite linear; -} - -#round1 span { - width: 30px; - height: 30px; - display: block; - position: absolute; - background-color: #000; - border-radius: 50%; - -webkit-animation: round1-bounce 2s infinite ease-in-out; - animation: round1-bounce 2s infinite ease-in-out; -} - -#round1 span:nth-child(2) { - top: auto; - bottom: 0; - -webkit-animation-delay: -1s; - animation-delay: -1s; -} - -@-webkit-keyframes round1-rotate { - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes round1-rotate { - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@-webkit-keyframes round1-bounce { - 0%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - } -} -@keyframes round1-bounce { - 0%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transform: scale(0); - transform: scale(0); - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } -} -/** END of round1 */ -/*-----------------------------------------------------------------------*/ -/**===== round2 =====*/ -#round2 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - -webkit-animation: round2-rotate 3s infinite linear; - animation: round2-rotate 3s infinite linear; -} - -#round2 span { - width: 30px; - height: 30px; - display: inline-block; - position: absolute; - top: 0; - background-color: #0057e7; - -webkit-animation: round2-bounce 2s infinite ease-in-out; - animation: round2-bounce 2s infinite ease-in-out; -} - -#round2 span:nth-child(2) { - top: auto; - bottom: 0; - background: #008744; - -webkit-animation-delay: -1s; - animation-delay: -1s; -} - -@-webkit-keyframes round2-rotate { - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes round2-rotate { - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@-webkit-keyframes round2-bounce { - 0%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - } -} -@keyframes round2-bounce { - 0%, - 100% { - -webkit-transform: scale(0); - transform: scale(0); - -webkit-transform: scale(0); - transform: scale(0); - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } -} -/** END of round2 */ -/*-----------------------------------------------------------------------*/ -/**===== clock1 =====*/ -#clock1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border-radius: 50%; - border: 2px #000 solid; -} - -#clock1:before { - content: ""; - border-left: 1px #000 solid; - position: absolute; - top: 9%; - left: 50%; - width: 2px; - height: -webkit-calc(50% - 2px); - height: calc(50% - 2px); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -ms-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -ms-transform-origin: 0% 100%; - -webkit-transform-origin: 0% 100%; - transform-origin: 0% 100%; - -webkit-transform-origin: 0% 100%; - -ms-transform-origin: 0% 100%; - transform-origin: 0% 100%; - -webkit-animation: spClock 1s infinite linear; - animation: spClock 1s infinite linear; -} - -@-webkit-keyframes spClock { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes spClock { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/** END of clock1 */ -/*-----------------------------------------------------------------------*/ -/**===== wave1 =====*/ -#wave1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border-radius: 50%; -} - -#wave1:before, -#wave1:after { - content: ""; - border: 2px solid #008744; - border-radius: 50%; - width: 50px; - height: 50px; - position: absolute; - left: 0px; -} - -#wave1:before { - -webkit-transform: scale(1, 1); - -ms-transform: scale(1, 1); - transform: scale(1, 1); - opacity: 1; - -webkit-animation: spWaveBe 0.6s infinite linear; - animation: spWaveBe 0.6s infinite linear; -} - -#wave1:after { - -webkit-transform: scale(0, 0); - -ms-transform: scale(0, 0); - transform: scale(0, 0); - opacity: 0; - -webkit-animation: spWaveAf 0.6s infinite linear; - animation: spWaveAf 0.6s infinite linear; -} - -@-webkit-keyframes spWaveAf { - from { - -webkit-transform: scale(0.5, 0.5); - transform: scale(0.5, 0.5); - opacity: 0; - } - to { - -webkit-transform: scale(1, 1); - transform: scale(1, 1); - opacity: 1; - } -} -@keyframes spWaveAf { - from { - -webkit-transform: scale(0.5, 0.5); - transform: scale(0.5, 0.5); - -webkit-transform: scale(0.5, 0.5); - transform: scale(0.5, 0.5); - opacity: 0; - } - to { - -webkit-transform: scale(1, 1); - transform: scale(1, 1); - -webkit-transform: scale(1, 1); - transform: scale(1, 1); - opacity: 1; - } -} -@-webkit-keyframes spWaveBe { - from { - -webkit-transform: scale(1, 1); - transform: scale(1, 1); - opacity: 1; - } - to { - -webkit-transform: scale(1.5, 1.5); - transform: scale(1.5, 1.5); - opacity: 0; - } -} -@keyframes spWaveBe { - from { - -webkit-transform: scale(1, 1); - transform: scale(1, 1); - opacity: 1; - } - to { - -webkit-transform: scale(1.5, 1.5); - transform: scale(1.5, 1.5); - opacity: 0; - } -} -/** END of wave1 */ -/*-----------------------------------------------------------------------*/ -/**===== heart1 =====*/ -#heart1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - -webkit-animation: increase 1s infinite ease-out; - animation: increase 1s infinite ease-out; -} - -#heart1:before, -#heart1:after { - position: absolute; - content: ""; - left: 30px; - top: 0; - width: 30px; - height: 50px; - background: #d62d20; - border-radius: 50% 50% 0 0; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform-origin: 0 100%; - transform-origin: 0 100%; - -ms-transform-origin: 0 100%; - -webkit-transform-origin: 0 100%; - transform-origin: 0 100%; -} - -#heart1:after { - left: 0; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - -ms-transform: rotate(45deg); - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; - -ms-transform-origin: 100% 100%; - -webkit-transform-origin: 100% 100%; - transform-origin: 100% 100%; -} - -@keyframes increase { - 0% { - -webkit-transform: scale(0.6); - transform: scale(0.6); - -webkit-transform: scale(0.6); - transform: scale(0.6); - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } - 100% { - -webkit-transform: scale(0.6); - transform: scale(0.6); - -webkit-transform: scale(0.6); - transform: scale(0.6); - } -} -@-webkit-keyframes increase { - 0% { - -webkit-transform: scale(0.6); - transform: scale(0.6); - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - } - 100% { - -webkit-transform: scale(0.6); - transform: scale(0.6); - } -} -/** END of heart1 */ -/*-----------------------------------------------------------------------*/ -/**===== bioh1 =====*/ -#bioh1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - border-bottom: 20px solid black; - border-top: 20px solid black; - border-left: 20px solid yellow; - border-right: 20px solid yellow; - border-radius: 50%; - -webkit-animation: biospin 2s infinite linear; - animation: biospin 2s infinite linear; -} - -@-webkit-keyframes biospin { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes biospin { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -/** END of bioh1 */ -/*-----------------------------------------------------------------------*/ -/**===== bubble1 =====*/ -#bubble1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - background: -webkit-radial-gradient( - bottom, - circle, - #81e8f6, - #76deef 10%, - #055194 80%, - #062745 100% - ); - background: radial-gradient( - circle at bottom, - #81e8f6, - #76deef 10%, - #055194 80%, - #062745 100% - ); - border-radius: 50%; - -webkit-animation: bubble-anim 2s infinite ease-out; - animation: bubble-anim 2s infinite ease-out; -} - -#bubble1:before { - content: ""; - position: absolute; - top: 1%; - left: 5%; - width: 90%; - height: 90%; - border-radius: 100%; - background: -webkit-radial-gradient( - top, - circle, - white, - rgba(255, 255, 255, 0) 58% - ); - background: -webkit-radial-gradient( - top, - circle, - #ffffff, - rgba(255, 255, 255, 0) 58% - ); - background: radial-gradient( - circle at top, - #ffffff, - rgba(255, 255, 255, 0) 58% - ); - z-index: 2; -} - -#bubble1:after { - content: ""; - position: absolute; - display: none; - top: 5%; - left: 10%; - width: 80%; - height: 80%; - border-radius: 100%; - z-index: 2; - -webkit-transform: rotateZ(-30deg); - transform: rotateZ(-30deg); - -ms-transform: rotate(-30deg); - -webkit-transform: rotateZ(-30deg); - transform: rotateZ(-30deg); -} - -@-webkit-keyframes bubble-anim { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } - 20% { - -webkit-transform: scaleY(0.95) scaleX(1.05); - transform: scaleY(0.95) scaleX(1.05); - -webkit-transform: scaleY(0.95) scaleX(1.05); - transform: scaleY(0.95) scaleX(1.05); - } - 48% { - -webkit-transform: scaleY(1.1) scaleX(0.9); - transform: scaleY(1.1) scaleX(0.9); - -webkit-transform: scaleY(1.1) scaleX(0.9); - transform: scaleY(1.1) scaleX(0.9); - } - 68% { - -webkit-transform: scaleY(0.98) scaleX(1.02); - transform: scaleY(0.98) scaleX(1.02); - -webkit-transform: scaleY(0.98) scaleX(1.02); - transform: scaleY(0.98) scaleX(1.02); - } - 80% { - -webkit-transform: scaleY(1.02) scaleX(0.98); - transform: scaleY(1.02) scaleX(0.98); - -webkit-transform: scaleY(1.02) scaleX(0.98); - transform: scaleY(1.02) scaleX(0.98); - } - 97%, - 100% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } -} -@keyframes bubble-anim { - 0% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } - 20% { - -webkit-transform: scaleY(0.95) scaleX(1.05); - transform: scaleY(0.95) scaleX(1.05); - -webkit-transform: scaleY(0.95) scaleX(1.05); - transform: scaleY(0.95) scaleX(1.05); - } - 48% { - -webkit-transform: scaleY(1.1) scaleX(0.9); - transform: scaleY(1.1) scaleX(0.9); - -webkit-transform: scaleY(1.1) scaleX(0.9); - transform: scaleY(1.1) scaleX(0.9); - } - 68% { - -webkit-transform: scaleY(0.98) scaleX(1.02); - transform: scaleY(0.98) scaleX(1.02); - -webkit-transform: scaleY(0.98) scaleX(1.02); - transform: scaleY(0.98) scaleX(1.02); - } - 80% { - -webkit-transform: scaleY(1.02) scaleX(0.98); - transform: scaleY(1.02) scaleX(0.98); - -webkit-transform: scaleY(1.02) scaleX(0.98); - transform: scaleY(1.02) scaleX(0.98); - } - 97%, - 100% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } -} -/** END of bubble1 */ -/*-----------------------------------------------------------------------*/ -/**===== triangle1 =====*/ -#triangle1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#triangle1 span { - position: absolute; - width: 0; - height: 0; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - -webkit-animation: triangle1 2s infinite linear; - animation: triangle1 2s infinite linear; -} - -#triangle1 span:nth-child(1) { - left: 5px; - border-top: 18px solid #000000; -} - -#triangle1 span:nth-child(2) { - left: 15px; - bottom: 15px; - border-top: 18px solid #000000; -} - -#triangle1 span:nth-child(3) { - right: 5px; - border-top: 18px solid #000000; -} - -@-webkit-keyframes triangle1 { - 0% { - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - } - 100% { - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - } -} -@keyframes triangle1 { - 0% { - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - } - 100% { - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - -webkit-transform: rotateX(360deg); - transform: rotateX(360deg); - } -} -/** END of triangle1 */ -/*-----------------------------------------------------------------------*/ -/**===== triangle2 =====*/ -#triangle2 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - -webkit-animation: triangle2 2s infinite linear; - animation: triangle2 2s infinite linear; -} - -#triangle2 span:nth-child(1) { - left: 10px; - position: absolute; - height: 0; - width: 0; - border-top: 26px solid #000000; - border-left: 15px solid transparent; - border-right: 15px solid transparent; - -webkit-animation: triangle2sp 2s infinite linear; - animation: triangle2sp 2s infinite linear; -} - -@-webkit-keyframes triangle2sp { - 0%, - 100% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - } - 50% { - -webkit-transform: translateY(-10px); - transform: translateY(-10px); - -webkit-transform: translateY(-10px); - transform: translateY(-10px); - } -} -@keyframes triangle2sp { - 0%, - 100% { - -webkit-transform: translateY(0px); - transform: translateY(0px); - -webkit-transform: translateY(0px); - transform: translateY(0px); - } - 50% { - -webkit-transform: translateY(-10px); - transform: translateY(-10px); - -webkit-transform: translateY(-10px); - transform: translateY(-10px); - } -} -@-webkit-keyframes triangle2 { - 0%, - 100% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 50% { - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - } -} -@keyframes triangle2 { - 0%, - 100% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 50% { - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - } -} -/** END of triangle2 */ -/*-----------------------------------------------------------------------*/ -/**===== triangle3 =====*/ -#triangle3 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#triangle3 span { - position: absolute; - left: 10px; - width: 0; - height: 0; -} - -#triangle3 span:nth-child(1) { - border-top: 30px solid #000000; - border-left: 30px solid transparent; - -webkit-animation: slice1 2s infinite ease-out; - animation: slice1 2s infinite ease-out; -} - -#triangle3 span:nth-child(2) { - border-bottom: 30px solid #000000; - border-right: 30px solid transparent; - -webkit-animation: slice2 2s infinite ease-out; - animation: slice2 2s infinite ease-out; -} - -@-webkit-keyframes slice1 { - 0%, - 75%, - 100% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - } - 25% { - -webkit-transform: translateX(10px); - transform: translateX(10px); - -webkit-transform: translateX(10px); - transform: translateX(10px); - } - 50% { - -webkit-transform: translateY(-12px); - transform: translateY(-12px); - -webkit-transform: translateY(-12px); - transform: translateY(-12px); - } -} -@keyframes slice1 { - 0%, - 75%, - 100% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - } - 25% { - -webkit-transform: translateX(10px); - transform: translateX(10px); - -webkit-transform: translateX(10px); - transform: translateX(10px); - } - 50% { - -webkit-transform: translateY(-12px); - transform: translateY(-12px); - -webkit-transform: translateY(-12px); - transform: translateY(-12px); - } -} -@-webkit-keyframes slice2 { - 0%, - 100% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - } - 25% { - -webkit-transform: translateX(-10px); - transform: translateX(-10px); - -webkit-transform: translateX(-10px); - transform: translateX(-10px); - } - 50% { - -webkit-transform: translateY(12px); - transform: translateY(12px); - -webkit-transform: translateY(12px); - transform: translateY(12px); - } -} -@keyframes slice2 { - 0%, - 100% { - -webkit-transform: translateX(0px); - transform: translateX(0px); - -webkit-transform: translateX(0px); - transform: translateX(0px); - } - 25% { - -webkit-transform: translateX(-10px); - transform: translateX(-10px); - -webkit-transform: translateX(-10px); - transform: translateX(-10px); - } - 50% { - -webkit-transform: translateY(12px); - transform: translateY(12px); - -webkit-transform: translateY(12px); - transform: translateY(12px); - } -} -/** END of triangle3 */ -/*-----------------------------------------------------------------------*/ -/**===== triangle4 =====*/ -#triangle4 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - width: 0; - height: 0; - border-bottom: 34px solid #008744; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - -webkit-animation: testing 2s infinite linear; - animation: testing 2s infinite linear; -} - -@-webkit-keyframes testing { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 25% { - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - } - 50% { - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes testing { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 25% { - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - } - 50% { - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -/** END of triangle4 */ -/*-----------------------------------------------------------------------*/ -/**===== triangle5 =====*/ -#triangle5 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#triangle5 span { - position: absolute; - width: 0; - height: 0; - border-left: 20px solid transparent; - border-right: 20px solid transparent; - -webkit-animation: triangle5 2s infinite linear; - animation: triangle5 2s infinite linear; -} - -#triangle5 span:nth-child(1) { - left: 0px; - border-bottom: 34px solid #008744; - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} - -#triangle5 span:nth-child(2) { - right: -15px; - border-bottom: 34px solid #ffa700; - -webkit-animation-delay: 0.7s; - animation-delay: 0.7s; -} - -#triangle5 span:nth-child(3) { - right: -3px; - border-bottom: 34px solid #d62d20; - -webkit-animation-delay: 1s; - animation-delay: 1s; -} - -@-webkit-keyframes triangle5 { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 100% { - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - } -} -@keyframes triangle5 { - 0% { - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - -webkit-transform: rotateY(0deg); - transform: rotateY(0deg); - } - 100% { - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - -webkit-transform: rotateY(360deg); - transform: rotateY(360deg); - } -} -/** END of triangle5 */ -/*-----------------------------------------------------------------------*/ -/**===== pacman1 =====*/ -#pacman1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} -#pacman1:before, -#pacman1:after { - content: ""; - position: absolute; - display: block; - width: 25px; - height: 50px; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; - -ms-transform-origin: 100% 50%; - -webkit-transform-origin: 100% 50%; - transform-origin: 100% 50%; - background-color: #000000; - border-radius: 1000px 0 0 1000px; -} -#pacman1:before { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - -ms-transform: rotate(45deg); - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - -webkit-animation: pacman-upper 0.5s ease infinite; - animation: pacman-upper 0.5s ease infinite; -} -#pacman1:after { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-animation: pacman-lower 0.5s ease infinite; - animation: pacman-lower 0.5s ease infinite; -} -@-webkit-keyframes pacman-upper { - 0% { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - } - 50% { - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - } - 100% { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - } -} -@keyframes pacman-upper { - 0% { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - } - 50% { - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - -webkit-transform: rotate(90deg); - transform: rotate(90deg); - } - 100% { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - } -} -@-webkit-keyframes pacman-lower { - 0% { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - } - 50% { - -webkit-transform: rotate(-90deg); - transform: rotate(-90deg); - -webkit-transform: rotate(-90deg); - transform: rotate(-90deg); - } - 100% { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - } -} -@keyframes pacman-lower { - 0% { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - } - 50% { - -webkit-transform: rotate(-90deg); - transform: rotate(-90deg); - -webkit-transform: rotate(-90deg); - transform: rotate(-90deg); - } - 100% { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - } -} -/** END of pacman1 */ -/*-----------------------------------------------------------------------*/ -/************************************************************ - * - * 4 X-mas Specials preloaders - * - ***********************************************************/ -/**===== snata1 =====*/ -#santa1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 100px; - width: 180px; - margin: -50px 0 0 -60px; - -webkit-animation: scale_santa 2.5s infinite ease-out; - animation: scale_santa 2.5s infinite ease-out; -} - -#santa1 span:nth-child(1) { - border-bottom: 50px solid #d62d20; - border-left: 25px solid transparent; - border-right: 25px solid transparent; - width: 0px; - height: 0px; - position: absolute; - top: 0px; - left: 25px; -} - -#santa1 span:nth-child(1):after { - content: ""; - width: 10px; - height: 10px; - position: absolute; - background: white; - left: -5px; - top: -3px; - border-radius: 50%; -} - -#santa1 span:nth-child(2) { - background: #ffe0bd; - width: 50px; - height: 33px; - position: absolute; - top: 41px; - left: 25px; - border-radius: 50%; - z-index: 2; -} - -#santa1 span:nth-child(2):before { - content: ""; - width: 7px; - height: 7px; - border-radius: 50%; - background: #56462f; - position: absolute; - top: 12px; - left: 13px; - -webkit-animation: blink 6s infinite; - animation: blink 6s infinite; -} - -#santa1 span:nth-child(2):after { - content: ""; - width: 7px; - height: 7px; - border-radius: 50%; - background: #56462f; - position: absolute; - top: 12px; - right: 13px; - -webkit-animation: blink 6s infinite; - animation: blink 6s infinite; -} - -#santa1 span:nth-child(3) { - width: 10px; - height: 10px; - position: absolute; - top: 36px; - left: 45px; - background: white; - border-radius: 50%; - z-index: 3; - box-shadow: 1px 1px 0px 0px white, 8px 1px 0px white, 14px 3px 0px white, - -6px 1px 0px white, -12px 4px 0px white, -18px 5px 0px white, - -23px 10px 0px white, -25px 16px 0px white, -19px 26px 0px white, - -22px 22px 0px white, -17px 30px 0px white, -12px 37px 0px white, - -8px 44px 0px white, -3px 47px 0px white, 0px 50px 0px white, - 3px 47px 0px white, 8px 44px 0px white, 25px 16px 0px white, - 19px 26px 0px white, 22px 22px 0px white, 16px 30px 0px white, - 12px 34px 0px white, 18px 7px 0px white, 23px 12px 0px white, - 26px 16px 0px white, -11px 24px 0px white, 6px 23px 0px white, - 10px 25px 0px white, 0px 23px 0px white, -4px 23px 0px white; -} - -#santa1 span:nth-child(3):after { - content: ""; - width: 33px; - height: 25px; - position: absolute; - background: white; - left: -12px; - top: 28px; - border-radius: 50%; -} - -#santa1 span:nth-child(3):before { - content: ""; - width: 12px; - height: 7px; - position: absolute; - background: #ffe0bd; - left: -1px; - top: 20px; - border: 1px solid black; - border-radius: 50%; -} - -@-webkit-keyframes blink { - 0% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 1% { - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - } - 2% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 60% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 61% { - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - } - 62% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 100% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } -} -@keyframes blink { - 0% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 1% { - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - } - 2% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 60% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 61% { - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - } - 62% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 100% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } -} -@-webkit-keyframes scale_santa { - 0% { - -webkit-transform: scale(0.7); - transform: scale(0.7); - -webkit-transform: scale(0.7); - transform: scale(0.7); - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } - 100% { - -webkit-transform: scale(0.7); - transform: scale(0.7); - -webkit-transform: scale(0.7); - transform: scale(0.7); - } -} -@keyframes scale_santa { - 0% { - -webkit-transform: scale(0.7); - transform: scale(0.7); - -webkit-transform: scale(0.7); - transform: scale(0.7); - } - 50% { - -webkit-transform: scale(1); - transform: scale(1); - -webkit-transform: scale(1); - transform: scale(1); - } - 100% { - -webkit-transform: scale(0.7); - transform: scale(0.7); - -webkit-transform: scale(0.7); - transform: scale(0.7); - } -} -/** END of snata1 */ -/*-----------------------------------------------------------------------*/ -/**===== tree1 =====*/ -#tree1 { - -webkit-transform: rotate(45deg) scale(0.7); - transform: rotate(45deg) scale(0.7); - -ms-transform: rotate(45deg) scale(0.7); - -webkit-transform: rotate(45deg) scale(0.7); - transform: rotate(45deg) scale(0.7); - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -35px 0 0 -35px; -} - -#tree1 span { - margin: -25px 0 0 -25px; - position: absolute; - height: 1em; - width: 1em; - -webkit-animation: rotate_tree 1.5s infinite; - animation: rotate_tree 1.5s infinite; - background: #008744; - box-shadow: 1em 1em 0 #008744, 2em 2em 0 #008744, 3em 3em 0 #008744, - 4em 4em 0 #008744, 0em 1em 0 #008744, 1em 0em 0 #008744, 1em 2em 0 #008744, - 2em 1em 0 #008744, 3em 1em 0 #008744, 1em 3em 0 #008744, 2em 3em 0 #008744, - 3em 2em 0 #008744, 4em 2em 0 #008744, 2em 4em 0 #008744, 3em 4em 0 #008744, - 4em 3em 0 #008744, 5em 2em 0 #008744, 2em 5em 0 #008744, 3em 5em 0 #008744, - 5em 3em 0 #008744; -} - -#tree1 span:before { - content: ""; - display: block; - position: relative; - top: -0.05em; - left: -0.05em; - width: 0.3em; - height: 0.3em; - border-radius: 50%; - background: #e58f89; - -webkit-animation: blink_lights 0.3s ease-in 1s infinite alternate both; - animation: blink_lights 0.3s ease-in 1s infinite alternate both; -} - -#tree1 span:after { - position: absolute; - content: ""; - z-index: 1; - left: 4.5em; - bottom: -4.5em; - width: 0; - height: 0; - border: 0.5em solid #5b1814; - border-width: 0.5em; - border-top-color: transparent; - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - display: block; -} - -@-webkit-keyframes blink_lights { - 0%, - 49% { - background-color: red; - box-shadow: 1em 1em 0 red, 2em 2em 0 red, 3em 3em 0 red, 4em 4em 0 red, - 0em 1em 0 white, 1em 0em 0 white, 1em 2em 0 white, 2em 1em 0 white, - 3em 1em 0 red, 1em 3em 0 red, 2em 3em 0 white, 3em 2em 0 white, - 4em 2em 0 red, 2em 4em 0 red, 3em 4em 0 white, 4em 3em 0 white, - 5em 2em 0 white, 2em 5em 0 white, 3em 5em 0 red, 5em 3em 0 red; - } - 50%, - 100% { - background-color: white; - box-shadow: 1em 1em 0 white, 2em 2em 0 white, 3em 3em 0 white, - 4em 4em 0 white, 0em 1em 0 red, 1em 0em 0 red, 1em 2em 0 red, - 2em 1em 0 red, 3em 1em 0 white, 1em 3em 0 white, 2em 3em 0 red, - 3em 2em 0 red, 4em 2em 0 white, 2em 4em 0 white, 3em 4em 0 red, - 4em 3em 0 red, 5em 2em 0 red, 2em 5em 0 red, 3em 5em 0 white, - 5em 3em 0 white; - } -} -@keyframes blink_lights { - 0%, - 49% { - background-color: red; - box-shadow: 1em 1em 0 red, 2em 2em 0 red, 3em 3em 0 red, 4em 4em 0 red, - 0em 1em 0 white, 1em 0em 0 white, 1em 2em 0 white, 2em 1em 0 white, - 3em 1em 0 red, 1em 3em 0 red, 2em 3em 0 white, 3em 2em 0 white, - 4em 2em 0 red, 2em 4em 0 red, 3em 4em 0 white, 4em 3em 0 white, - 5em 2em 0 white, 2em 5em 0 white, 3em 5em 0 red, 5em 3em 0 red; - } - 50%, - 100% { - background-color: white; - box-shadow: 1em 1em 0 white, 2em 2em 0 white, 3em 3em 0 white, - 4em 4em 0 white, 0em 1em 0 red, 1em 0em 0 red, 1em 2em 0 red, - 2em 1em 0 red, 3em 1em 0 white, 1em 3em 0 white, 2em 3em 0 red, - 3em 2em 0 red, 4em 2em 0 white, 2em 4em 0 white, 3em 4em 0 red, - 4em 3em 0 red, 5em 2em 0 red, 2em 5em 0 red, 3em 5em 0 white, - 5em 3em 0 white; - } -} -@-webkit-keyframes rotate_tree { - 0%, - 100% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(3deg); - transform: rotate(3deg); - -webkit-transform: rotate(3deg); - transform: rotate(3deg); - } -} -@keyframes rotate_tree { - 0%, - 100% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 50% { - -webkit-transform: rotate(3deg); - transform: rotate(3deg); - -webkit-transform: rotate(3deg); - transform: rotate(3deg); - } -} -/** END of tree1 */ -/*-----------------------------------------------------------------------*/ -/**===== snowman1 =====*/ -#snowman1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; - -webkit-animation: wave_snowman 4s infinite; - animation: wave_snowman 4s infinite; -} - -#snowman1 .snowmanbody { - display: block; - position: absolute; - top: 50%; - left: 50%; - width: 200px; - height: 200px; - background: -webkit-radial-gradient(center circle, #fff 40%, skyblue 100%); - background: -webkit-radial-gradient(center circle, #ffffff 40%, #87ceeb 100%); - background: radial-gradient(circle at center, #ffffff 40%, #87ceeb 100%); - box-shadow: -13px -8px 0px rgba(0, 0, 0, 0.1) inset; - border-radius: 50%; - margin: -100px 0 0 -100px; - -webkit-transform: scale(0.21); - transform: scale(0.21); - -ms-transform: scale(0.21); - -webkit-transform: scale(0.21); - transform: scale(0.21); -} - -#snowman1 .snowmanbody:before { - width: 100px; - height: 100px; - background: -webkit-radial-gradient(center circle, #fff 40%, skyblue 100%); - background: -webkit-radial-gradient(center circle, #ffffff 40%, #87ceeb 100%); - background: radial-gradient(circle at center, #ffffff 40%, #87ceeb 100%); - box-shadow: -5px 0px 0px rgba(0, 0, 0, 0.1) inset; - border-radius: 50%; - display: inline-block; - content: ""; - position: relative; - top: -191px; - left: 46px; -} - -#snowman1 .snowmanbody:after { - width: 160px; - height: 160px; - background: -webkit-radial-gradient(center circle, #fff 40%, skyblue 100%); - background: -webkit-radial-gradient(center circle, #ffffff 40%, #87ceeb 100%); - background: radial-gradient(circle at center, #ffffff 40%, #87ceeb 100%); - box-shadow: -7px -5px 0px rgba(0, 0, 0, 0.1) inset; - border-radius: 50%; - display: inline-block; - content: ""; - position: relative; - top: -203px; - left: 20px; -} - -#snowman1 span:nth-child(1) { - width: 0px; - height: 0px; - border-style: solid; - border-width: 8px 41px 8px 0; - border-color: transparent #fa9a20 transparent transparent; - content: ""; - position: relative; - top: -229px; - display: inline-block; - left: -50px; - -webkit-transform: rotate(10deg); - transform: rotate(10deg); - -ms-transform: rotate(10deg); - -webkit-transform: rotate(10deg); - transform: rotate(10deg); - box-shadow: 0px 43px rgba(0, 0, 0, 0.2) inset; -} - -#snowman1 span:nth-child(1):before { - content: ""; - width: 12px; - height: 12px; - border-radius: 50%; - background: #2c3e50; - display: inline-block; - position: absolute; - top: -23px; - left: 20px; -} - -#snowman1 span:nth-child(1):after { - content: ""; - width: 12px; - height: 12px; - border-radius: 50%; - background: #2c3e50; - display: inline-block; - position: absolute; - top: -26px; - left: 40px; -} - -#snowman1 span:nth-child(2) { - border-bottom: 21px solid #f34d4d; - border-left: 18px solid transparent; - border-right: 29px solid transparent; - height: 0; - width: 104px; - position: absolute; - top: -101px; - z-index: 30; - left: 50px; - border-radius: 0px 100% 5px 10px; -} - -#snowman1 span:nth-child(2):after { - width: 74px; - height: 17px; - -webkit-transform: rotate(86deg); - transform: rotate(86deg); - -ms-transform: rotate(86deg); - -webkit-transform: rotate(86deg); - transform: rotate(86deg); - background: #f34d4d; - display: inline-block; - content: ""; - position: absolute; - top: 34px; - left: 15px; - border-radius: 50% 0% 50% 50%; - box-shadow: -4px 0px rgba(0, 0, 0, 0.1) inset; -} - -#snowman1 span:nth-child(3) { - height: 15px; - width: 15px; - background: #2c3e50; - position: absolute; - border-radius: 50%; - left: 60px; - top: -23px; - z-index: 30; - -webkit-animation: snowman_button 0.5s infinite; - animation: snowman_button 0.5s infinite; -} - -#snowman1 span:nth-child(3):before { - height: 20px; - width: 20px; - background: #2c3e50; - position: absolute; - content: ""; - display: inline-block; - border-radius: 50%; - top: -30px; - left: 5px; - -webkit-animation: snowman_button 1s infinite; - animation: snowman_button 1s infinite; -} - -#snowman1 span:nth-child(3):after { - height: 10px; - width: 10px; - background: #2c3e50; - position: absolute; - content: ""; - display: inline-block; - border-radius: 50%; - top: 30px; - left: 5px; - -webkit-animation: snowman_button 2s infinite; - animation: snowman_button 2s infinite; -} - -@-webkit-keyframes snowman_button { - 0% { - background: green; - } - 50% { - background: red; - } - 100% { - background: green; - } -} -@keyframes snowman_button { - 0% { - background: green; - } - 50% { - background: red; - } - 100% { - background: green; - } -} -@-webkit-keyframes wave_snowman { - 0% { - -webkit-transform: rotate(-15deg); - transform: rotate(-15deg); - -webkit-transform: rotate(-15deg); - transform: rotate(-15deg); - } - 50% { - -webkit-transform: rotate(15deg); - transform: rotate(15deg); - -webkit-transform: rotate(15deg); - transform: rotate(15deg); - } - 100% { - -webkit-transform: rotate(-15deg); - transform: rotate(-15deg); - -webkit-transform: rotate(-15deg); - transform: rotate(-15deg); - } -} -@keyframes wave_snowman { - 0% { - -webkit-transform: rotate(-15deg); - transform: rotate(-15deg); - -webkit-transform: rotate(-15deg); - transform: rotate(-15deg); - } - 50% { - -webkit-transform: rotate(15deg); - transform: rotate(15deg); - -webkit-transform: rotate(15deg); - transform: rotate(15deg); - } - 100% { - -webkit-transform: rotate(-15deg); - transform: rotate(-15deg); - -webkit-transform: rotate(-15deg); - transform: rotate(-15deg); - } -} -/** END of snowman1 */ -/*-----------------------------------------------------------------------*/ -/**===== elf1 =====*/ -#elf1 { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 100px; - width: 180px; - margin: -50px 0 0 -60px; - -webkit-animation: rotate_greensanta 3s infinite ease-in-out; - animation: rotate_greensanta 3s infinite ease-in-out; -} - -#elf1 span:nth-child(1) { - border-bottom: 50px solid #008744; - border-left: 25px solid transparent; - border-right: 25px solid transparent; - width: 0px; - height: 0px; - position: absolute; - top: 0px; - left: 25px; -} - -#elf1 span:nth-child(1):after { - content: ""; - width: 10px; - height: 10px; - position: absolute; - background: #ffa700; - left: -5px; - top: -3px; - border-radius: 50%; -} - -#elf1 span:nth-child(2) { - background: pink; - width: 50px; - height: 33px; - position: absolute; - top: 41px; - left: 25px; - border-radius: 50%; - z-index: 2; -} - -#elf1 span:nth-child(2):before { - content: ""; - width: 5px; - height: 5px; - border-radius: 50%; - background: black; - position: absolute; - top: 12px; - left: 13px; - -webkit-animation: blink 6s infinite; - animation: blink 6s infinite; -} - -#elf1 span:nth-child(2):after { - content: ""; - width: 5px; - height: 5px; - border-radius: 50%; - background: black; - position: absolute; - top: 12px; - right: 13px; - -webkit-animation: blink 6s infinite; - animation: blink 6s infinite; -} - -#elf1 span:nth-child(3) { - width: 10px; - height: 10px; - position: absolute; - top: 36px; - left: 45px; - background: black; - border-radius: 50%; - z-index: 3; - box-shadow: 1px 1px 0px 0px black, 8px 1px 0px black, 14px 3px 0px black, - -6px 1px 0px black, -12px 4px 0px black, -18px 5px 0px black, - -23px 10px 0px black, 18px 7px 0px black, 23px 12px 0px black, - -11px 24px 0px black, 6px 23px 0px black, 10px 25px 0px black, - 0px 23px 0px black, -4px 23px 0px black; -} - -#elf1 span:nth-child(3):before { - content: ""; - width: 12px; - height: 7px; - position: absolute; - background: pink; - left: -1px; - top: 20px; - border: 1px solid black; - border-radius: 50%; -} - -@-webkit-keyframes blink { - 0% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 1% { - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - } - 2% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 60% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 61% { - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - } - 62% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 100% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } -} -@keyframes blink { - 0% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 1% { - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - } - 2% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 60% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 61% { - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - -webkit-transform: scaleX(1.3) scaleY(0.1); - transform: scaleX(1.3) scaleY(0.1); - } - 62% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } - 100% { - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - -webkit-transform: scaleX(1) scaleY(1); - transform: scaleX(1) scaleY(1); - } -} -@-webkit-keyframes rotate_greensanta { - 0%, - 100% { - -webkit-transform: rotateX(20deg); - transform: rotateX(20deg); - -webkit-transform: rotateX(20deg); - transform: rotateX(20deg); - } - 50% { - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - } -} -@keyframes rotate_greensanta { - 0%, - 100% { - -webkit-transform: rotateX(20deg); - transform: rotateX(20deg); - -webkit-transform: rotateX(20deg); - transform: rotateX(20deg); - } - 50% { - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - } -} -/** END of elf1 */ -/*-----------------------------------------------------------------------*/ -/**===== circle_square =====*/ -#circle_square { - display: block; - position: absolute; - top: 50%; - left: 50%; - height: 50px; - width: 50px; - margin: -25px 0 0 -25px; -} - -#circle_square span { - width: 16px; - height: 16px; - background-color: #000; - display: inline-block; - background-color: #18bc9c; - -webkit-animation: square2 2s infinite ease-in-out both; - animation: square2 2s infinite ease-in-out both; -} - -#circle_square span:nth-child(1) { - -webkit-animation: preloader_2_1 1.5s infinite ease-in-out; - animation: preloader_2_1 1.5s infinite ease-in-out; -} - -#circle_square span:nth-child(2) { - left: 20px; - -webkit-animation: preloader_2_2 1.5s infinite ease-in-out; - animation: preloader_2_2 1.5s infinite ease-in-out; -} - -#circle_square span:nth-child(3) { - top: 0px; - -webkit-animation: preloader_2_3 1.5s infinite ease-in-out; - animation: preloader_2_3 1.5s infinite ease-in-out; -} - -#circle_square span:nth-child(4) { - top: 0px; - left: 20px; - -webkit-animation: preloader_2_4 1.5s infinite ease-in-out; - animation: preloader_2_4 1.5s infinite ease-in-out; -} - -@-webkit-keyframes preloader_2_1 { - 0% { - -webkit-transform: translateX(0px) translateY(0px) rotate(0deg); - transform: translateX(0px) translateY(0px) rotate(0deg); - border-radius: 0px; - } - 50% { - -webkit-transform: translateX(-20px) translateY(-10px) rotate(-180deg); - transform: translateX(-20px) translateY(-10px) rotate(-180deg); - border-radius: 50%; - background: #3498db; - } - 80% { - -webkit-transform: translateX(0px) translateY(0px) rotate(-360deg); - transform: translateX(0px) translateY(0px) rotate(-360deg); - border-radius: 0px; - } - 100% { - -webkit-transform: translateX(0px) translateY(0px) rotate(-360deg); - transform: translateX(0px) translateY(0px) rotate(-360deg); - border-radius: 0px; - } -} - -@keyframes preloader_2_1 { - 0% { - -webkit-transform: translateX(0px) translateY(0px) rotate(0deg); - transform: translateX(0px) translateY(0px) rotate(0deg); - border-radius: 0px; - } - 50% { - -webkit-transform: translateX(-20px) translateY(-10px) rotate(-180deg); - transform: translateX(-20px) translateY(-10px) rotate(-180deg); - border-radius: 50%; - background: #3498db; - } - 80% { - -webkit-transform: translateX(0px) translateY(0px) rotate(-360deg); - transform: translateX(0px) translateY(0px) rotate(-360deg); - border-radius: 0px; - } - 100% { - -webkit-transform: translateX(0px) translateY(0px) rotate(-360deg); - transform: translateX(0px) translateY(0px) rotate(-360deg); - border-radius: 0px; - } -} -@-webkit-keyframes preloader_2_2 { - 0% { - -webkit-transform: translateX(0px) translateY(0px) rotate(0deg); - transform: translateX(0px) translateY(0px) rotate(0deg); - border-radius: 0px; - } - 50% { - -webkit-transform: translateX(20px) translateY(-10px) rotate(180deg); - transform: translateX(20px) translateY(-10px) rotate(180deg); - border-radius: 50%; - background: #f1c40f; - } - 80% { - -webkit-transform: translateX(0px) translateY(0px) rotate(360deg); - transform: translateX(0px) translateY(0px) rotate(360deg); - border-radius: 0px; - } - 100% { - -webkit-transform: translateX(0px) translateY(0px) rotate(360deg); - transform: translateX(0px) translateY(0px) rotate(360deg); - border-radius: 0px; - } -} -@keyframes preloader_2_2 { - 0% { - -webkit-transform: translateX(0px) translateY(0px) rotate(0deg); - transform: translateX(0px) translateY(0px) rotate(0deg); - border-radius: 0px; - } - 50% { - -webkit-transform: translateX(20px) translateY(-10px) rotate(180deg); - transform: translateX(20px) translateY(-10px) rotate(180deg); - border-radius: 50%; - background: #f1c40f; - } - 80% { - -webkit-transform: translateX(0px) translateY(0px) rotate(360deg); - transform: translateX(0px) translateY(0px) rotate(360deg); - border-radius: 0px; - } - 100% { - -webkit-transform: translateX(0px) translateY(0px) rotate(360deg); - transform: translateX(0px) translateY(0px) rotate(360deg); - border-radius: 0px; - } -} -@-webkit-keyframes preloader_2_3 { - 0% { - -webkit-transform: translateX(0px) translateY(0px) rotate(0deg); - transform: translateX(0px) translateY(0px) rotate(0deg); - border-radius: 0px; - } - 50% { - -webkit-transform: translateX(-20px) translateY(10px) rotate(-180deg); - transform: translateX(-20px) translateY(10px) rotate(-180deg); - border-radius: 50%; - background: #2ecc71; - } - 80% { - -webkit-transform: translateX(0px) translateY(0px) rotate(-360deg); - transform: translateX(0px) translateY(0px) rotate(-360deg); - border-radius: 0px; - } - 100% { - -webkit-transform: translateX(0px) translateY(0px) rotate(-360deg); - transform: translateX(0px) translateY(0px) rotate(-360deg); - border-radius: 0px; - } -} -@keyframes preloader_2_3 { - 0% { - -webkit-transform: translateX(0px) translateY(0px) rotate(0deg); - transform: translateX(0px) translateY(0px) rotate(0deg); - border-radius: 0px; - } - 50% { - -webkit-transform: translateX(-20px) translateY(10px) rotate(-180deg); - transform: translateX(-20px) translateY(10px) rotate(-180deg); - border-radius: 50%; - background: #2ecc71; - } - 80% { - -webkit-transform: translateX(0px) translateY(0px) rotate(-360deg); - transform: translateX(0px) translateY(0px) rotate(-360deg); - border-radius: 0px; - } - 100% { - -webkit-transform: translateX(0px) translateY(0px) rotate(-360deg); - transform: translateX(0px) translateY(0px) rotate(-360deg); - border-radius: 0px; - } -} -@-webkit-keyframes preloader_2_4 { - 0% { - -webkit-transform: translateX(0px) translateY(0px) rotate(0deg); - transform: translateX(0px) translateY(0px) rotate(0deg); - border-radius: 0px; - } - 50% { - -webkit-transform: translateX(20px) translateY(10px) rotate(180deg); - transform: translateX(20px) translateY(10px) rotate(180deg); - border-radius: 50%; - background: #e74c3c; - } - 80% { - -webkit-transform: translateX(0px) translateY(0px) rotate(360deg); - transform: translateX(0px) translateY(0px) rotate(360deg); - border-radius: 0px; - } - 100% { - -webkit-transform: translateX(0px) translateY(0px) rotate(360deg); - transform: translateX(0px) translateY(0px) rotate(360deg); - border-radius: 0px; - } -} -@keyframes preloader_2_4 { - 0% { - -webkit-transform: translateX(0px) translateY(0px) rotate(0deg); - transform: translateX(0px) translateY(0px) rotate(0deg); - border-radius: 0px; - } - 50% { - -webkit-transform: translateX(20px) translateY(10px) rotate(180deg); - transform: translateX(20px) translateY(10px) rotate(180deg); - border-radius: 50%; - background: #e74c3c; - } - 80% { - -webkit-transform: translateX(0px) translateY(0px) rotate(360deg); - transform: translateX(0px) translateY(0px) rotate(360deg); - border-radius: 0px; - } - 100% { - -webkit-transform: translateX(0px) translateY(0px) rotate(360deg); - transform: translateX(0px) translateY(0px) rotate(360deg); - border-radius: 0px; - } -} -/** END of circle_square */ diff --git a/webapp_v2/src/components/common/page/BasicPage.tsx b/webapp_v2/src/components/common/page/BasicPage.tsx deleted file mode 100644 index 5b7e4b8961..0000000000 --- a/webapp_v2/src/components/common/page/BasicPage.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { Box, Divider, styled } from "@mui/material"; -import { PropsWithChildren, ReactNode } from "react"; - -/** - * Styles - */ - -const Header = styled("div")(({ theme }) => ({ - width: "100%", - display: "flex", - flexFlow: "column nowrap", - justifyContent: "flex-start", - alignItems: "center", - padding: theme.spacing(2, 3), - boxSizing: "border-box", -})); - -/** - * Types - */ - -type PropTypes = { - header?: ReactNode; -}; - -/** - * Component - */ - -function BasicPage(props: PropsWithChildren) { - const { header, children } = props; - - return ( - - {header &&
{header}
} - - {children} -
- ); -} - -BasicPage.defaultProps = { - header: null, -}; - -export default BasicPage; diff --git a/webapp_v2/src/components/common/page/RootPage.tsx b/webapp_v2/src/components/common/page/RootPage.tsx deleted file mode 100644 index 8c85f3d49a..0000000000 --- a/webapp_v2/src/components/common/page/RootPage.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import { Box, Typography } from "@mui/material"; -import { ElementType, PropsWithChildren, ReactNode } from "react"; -import BasicPage from "./BasicPage"; - -/** - * Types - */ - -type PropTypes = { - title: string; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - titleIcon?: ElementType; // TODO: replace any - headerRight?: ReactNode; - headerBottom?: ReactNode; -}; - -/** - * Component - */ - -function RootPage(props: PropsWithChildren) { - const { - title, - titleIcon: TitleIcon, - headerRight, - headerBottom, - children, - } = props; - - return ( - - - - {TitleIcon && ( - - )} - - {title} - - - {headerRight && ( - - {headerRight} - - )} - - {headerBottom && ( - - {headerBottom} - - )} - - } - > - {children} - - ); -} - -RootPage.defaultProps = { - titleIcon: null, - headerRight: null, - headerBottom: null, -}; - -export default RootPage; diff --git a/webapp_v2/src/components/singlestudy/HomeView/InformationView/index.tsx b/webapp_v2/src/components/singlestudy/HomeView/InformationView/index.tsx deleted file mode 100644 index a7271eb54b..0000000000 --- a/webapp_v2/src/components/singlestudy/HomeView/InformationView/index.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Paper, Button } from "@mui/material"; -import { useNavigate } from "react-router-dom"; -import { StudyMetadata } from "../../../../common/types"; - -interface Props { - // eslint-disable-next-line react/no-unused-prop-types - study: StudyMetadata | undefined; -} - -function InformationView(props: Props) { - const { study } = props; - const navigate = useNavigate(); - - return ( - - {study && ( - - )} - - ); -} - -export default InformationView; diff --git a/webapp_v2/src/components/singlestudy/explore/Configuration.tsx b/webapp_v2/src/components/singlestudy/explore/Configuration.tsx deleted file mode 100644 index 12a057fc0e..0000000000 --- a/webapp_v2/src/components/singlestudy/explore/Configuration.tsx +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable react-hooks/exhaustive-deps */ -import { useOutletContext } from "react-router-dom"; -import { Box, Typography } from "@mui/material"; -import { StudyMetadata } from "../../../common/types"; - -function Configuration() { - const { study } = useOutletContext<{ study: StudyMetadata }>(); - - return ( - - - {" "} - CONFIGURATION:
{study?.id} -
-
- ); -} - -export default Configuration; diff --git a/webapp_v2/src/components/singlestudy/explore/Modelization/Area.tsx b/webapp_v2/src/components/singlestudy/explore/Modelization/Area.tsx deleted file mode 100644 index fbef91c1bd..0000000000 --- a/webapp_v2/src/components/singlestudy/explore/Modelization/Area.tsx +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable react-hooks/exhaustive-deps */ -import { useOutletContext } from "react-router-dom"; -import { Box, Typography } from "@mui/material"; -import { StudyMetadata } from "../../../../common/types"; - -function Area() { - const { study } = useOutletContext<{ study: StudyMetadata }>(); - - return ( - - - {" "} - AREA:
{study?.id} -
-
- ); -} - -export default Area; diff --git a/webapp_v2/src/components/singlestudy/explore/Modelization/BindingContraint.tsx b/webapp_v2/src/components/singlestudy/explore/Modelization/BindingContraint.tsx deleted file mode 100644 index 277afde49e..0000000000 --- a/webapp_v2/src/components/singlestudy/explore/Modelization/BindingContraint.tsx +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable react-hooks/exhaustive-deps */ -import { useOutletContext } from "react-router-dom"; -import { Box, Typography } from "@mui/material"; -import { StudyMetadata } from "../../../../common/types"; - -function BindingContraint() { - const { study } = useOutletContext<{ study: StudyMetadata }>(); - - return ( - - - {" "} - BINDING CONTRAINT:
{study?.id} -
-
- ); -} - -export default BindingContraint; diff --git a/webapp_v2/src/components/singlestudy/explore/Modelization/Links.tsx b/webapp_v2/src/components/singlestudy/explore/Modelization/Links.tsx deleted file mode 100644 index beb385daf4..0000000000 --- a/webapp_v2/src/components/singlestudy/explore/Modelization/Links.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { useOutletContext } from "react-router-dom"; -import { Box, Typography } from "@mui/material"; -import { StudyMetadata } from "../../../../common/types"; - -function Links() { - const { study } = useOutletContext<{ study: StudyMetadata }>(); - - return ( - - - {" "} - Links:
{study?.id} -
-
- ); -} - -export default Links; diff --git a/webapp_v2/src/components/singlestudy/explore/Results.tsx b/webapp_v2/src/components/singlestudy/explore/Results.tsx deleted file mode 100644 index 105e4633ce..0000000000 --- a/webapp_v2/src/components/singlestudy/explore/Results.tsx +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable react-hooks/exhaustive-deps */ -import { useOutletContext } from "react-router-dom"; -import { Box, Typography } from "@mui/material"; -import { StudyMetadata } from "../../../common/types"; - -function Results() { - const { study } = useOutletContext<{ study: StudyMetadata }>(); - - return ( - - - {" "} - RESULTS:
{study?.id} -
-
- ); -} - -export default Results; diff --git a/webapp_v2/src/components/studies/ImportStudy.tsx b/webapp_v2/src/components/studies/ImportStudy.tsx deleted file mode 100644 index 05580085bc..0000000000 --- a/webapp_v2/src/components/studies/ImportStudy.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { useRef, useState } from "react"; -import { Button, LinearProgress } from "@mui/material"; -import { useForm } from "react-hook-form"; -import { useTranslation } from "react-i18next"; -import debug from "debug"; -import { connect, ConnectedProps } from "react-redux"; -import GetAppOutlinedIcon from "@mui/icons-material/GetAppOutlined"; -import { getStudyMetadata, importStudy } from "../../services/api/study"; -import { addStudies } from "../../store/study"; -import { StudyMetadata } from "../../common/types"; -import { addUpload, updateUpload, completeUpload } from "../../store/upload"; -import { AppState } from "../../store/reducers"; - -const logErr = debug("antares:createstudyform:error"); - -interface Inputs { - study: FileList; -} - -const mapState = (state: AppState) => ({ uploads: state.upload.uploads }); - -const mapDispatch = { - addStudy: (study: StudyMetadata) => addStudies([study]), - createUpload: (name: string) => addUpload(name), - updateUploadCompletion: (id: string, completion: number) => - updateUpload(id, completion), - endUpload: (id: string) => completeUpload(id), -}; - -const connector = connect(mapState, mapDispatch); -type PropsFromRedux = ConnectedProps; -type PropTypes = PropsFromRedux; - -function ImportStudyForm(props: PropTypes) { - const [t] = useTranslation(); - const { addStudy, createUpload, updateUploadCompletion, endUpload } = props; - const { register, handleSubmit } = useForm(); - const [uploadProgress, setUploadProgress] = useState(); - const inputRef = useRef(null); - - const onSubmit = async (data: Inputs) => { - if (data.study && data.study.length === 1) { - const uploadId = createUpload("Study import"); - try { - const sid = await importStudy(data.study[0], (completion) => { - updateUploadCompletion(uploadId, completion); - setUploadProgress(completion); - }); - const metadata = await getStudyMetadata(sid); - addStudy(metadata); - } catch (e) { - logErr("Failed to import study", data.study, e); - } finally { - setUploadProgress(undefined); - endUpload(uploadId); - } - } - }; - - const onButtonClick = () => { - if (inputRef.current) { - inputRef.current.click(); - } - }; - - return ( -
- - {/* eslint-disable-next-line react/jsx-props-no-spreading */} - { - inputRef.current = e; - }} - /> - {uploadProgress && ( - - )} - - ); -} - -export default connector(ImportStudyForm); diff --git a/webapp_v2/src/i18n.js b/webapp_v2/src/i18n.js deleted file mode 100644 index d1632efd01..0000000000 --- a/webapp_v2/src/i18n.js +++ /dev/null @@ -1,44 +0,0 @@ -import i18n from "i18next"; -import Backend from "i18next-xhr-backend"; -import LanguageDetector from "i18next-browser-languagedetector"; -import { initReactI18next } from "react-i18next"; - -export function initI18n(version = "unknown") { - i18n - // load translation using xhr -> see /public/locales - // learn more: https://github.com/i18next/i18next-xhr-backend - .use(Backend) - // detect user language - // learn more: https://github.com/i18next/i18next-browser-languageDetector - .use(LanguageDetector) - // pass the i18n instance to react-i18next. - .use(initReactI18next) - // init i18next - // for all options read: https://www.i18next.com/overview/configuration-options - .init({ - fallbackLng: "fr", - backend: { - loadPath: () => `/locales/{{lng}}/{{ns}}.json?v=${version}`, - }, - react: { - useSuspense: false, - wait: true, - }, - interpolation: { - escapeValue: false, // not needed for react as it escapes by default - }, - ns: [ - "main", - "singlestudy", - "studymanager", - "jobs", - "settings", - "data", - "variants", - "downloads", - ], - defaultNS: "main", - }); -} - -export default {}; diff --git a/webapp_v2/src/index.css b/webapp_v2/src/index.css deleted file mode 100644 index 4a1df4db71..0000000000 --- a/webapp_v2/src/index.css +++ /dev/null @@ -1,13 +0,0 @@ -body { - margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", - "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", - monospace; -} diff --git a/webapp_v2/src/index.tsx b/webapp_v2/src/index.tsx deleted file mode 100644 index 1ca28fa84b..0000000000 --- a/webapp_v2/src/index.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import ReactDOM from "react-dom"; -import { Provider } from "react-redux"; -import { StyledEngineProvider } from "@mui/material"; -import createStore from "./store/reducers"; -import { addWsListeners } from "./services/utils/globalWsListeners"; -import { initI18n } from "./i18n"; -import "./index.css"; -import App from "./App"; -import { Config, initConfig } from "./services/config"; -import { loadState, saveState } from "./services/utils/localStorage"; - -initConfig((config: Config) => { - const VERSION_INSTALLED_KEY = "antaresweb.version"; - const versionInstalled = loadState(VERSION_INSTALLED_KEY); - saveState(VERSION_INSTALLED_KEY, config.version.gitcommit); - if (versionInstalled !== config.version.gitcommit) { - // eslint-disable-next-line no-restricted-globals - location.reload(); - } - - initI18n(config.version.gitcommit); - - const reduxStore = createStore(); - addWsListeners(reduxStore); - - ReactDOM.render( - - - - - , - document.getElementById("root") - ); -}); diff --git a/webapp_v2/src/pages/Settings.tsx b/webapp_v2/src/pages/Settings.tsx deleted file mode 100644 index ae3a40a13a..0000000000 --- a/webapp_v2/src/pages/Settings.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import SettingsIcon from "@mui/icons-material/Settings"; -import { useTranslation } from "react-i18next"; -import RootPage from "../components/common/page/RootPage"; - -function Settings() { - const [t] = useTranslation(); - - return ( - - In progress - - ); -} - -export default Settings; diff --git a/webapp_v2/src/pages/Studies/index.tsx b/webapp_v2/src/pages/Studies/index.tsx deleted file mode 100644 index 3ae02c6ad8..0000000000 --- a/webapp_v2/src/pages/Studies/index.tsx +++ /dev/null @@ -1,370 +0,0 @@ -/* eslint-disable react-hooks/exhaustive-deps */ -import { useEffect, useState } from "react"; -import { Box, Divider } from "@mui/material"; -import { useTranslation } from "react-i18next"; -import { useSnackbar } from "notistack"; -import { connect, ConnectedProps } from "react-redux"; -import moment from "moment"; -import { AxiosError } from "axios"; -import debug from "debug"; -import TravelExploreOutlinedIcon from "@mui/icons-material/TravelExploreOutlined"; -import SideNav from "../../components/studies/SideNav"; -import StudiesList from "../../components/studies/StudiesList"; -import { - GenericInfo, - GroupDTO, - StudyMetadata, - UserDTO, - SortElement, - SortItem, - SortStatus, - DefaultFilterKey, -} from "../../common/types"; -import { loadState, saveState } from "../../services/utils/localStorage"; -import { convertVersions } from "../../services/utils"; -import { getGroups, getUsers } from "../../services/api/user"; -import { getStudies } from "../../services/api/study"; -import { AppState } from "../../store/reducers"; -import { initStudies, initStudiesVersion } from "../../store/study"; -import FilterDrawer from "../../components/studies/FilterDrawer"; -import enqueueErrorSnackbar from "../../components/common/ErrorSnackBar"; -import MainContentLoader from "../../components/common/loaders/MainContentLoader"; -import RootPage from "../../components/common/page/RootPage"; -import HeaderRight from "../../components/studies/HeaderRight"; -import HeaderBottom from "../../components/studies/HeaderBottom"; - -const logErr = debug("antares:studies:error"); - -const mapState = (state: AppState) => ({ - studies: state.study.studies, - versions: state.study.versionList, -}); - -const mapDispatch = { - loadStudies: initStudies, - loadVersions: initStudiesVersion, -}; - -const connector = connect(mapState, mapDispatch); -type ReduxProps = ConnectedProps; -type PropTypes = ReduxProps; - -function Studies(props: PropTypes) { - const { studies, loadStudies, loadVersions, versions } = props; - const [t] = useTranslation(); - const { enqueueSnackbar } = useSnackbar(); - const [filteredStudies, setFilteredStudies] = - useState>(studies); - const [loaded, setLoaded] = useState(false); - const [managedFilter, setManageFilter] = useState( - loadState(DefaultFilterKey.MANAGED, false) || false - ); - const [currentSortItem, setCurrentSortItem] = useState( - loadState(DefaultFilterKey.SORTING, { - element: SortElement.NAME, - status: SortStatus.INCREASE, - }) - ); - const [inputValue, setInputValue] = useState(""); - const [openFilter, setOpenFiler] = useState(false); - const [userList, setUserList] = useState>([]); - const [groupList, setGroupList] = useState>([]); - const [currentUser, setCurrentUser] = useState | undefined>( - loadState>(DefaultFilterKey.USERS) - ); - const [currentGroup, setCurrentGroup] = useState | undefined>( - loadState>(DefaultFilterKey.GROUPS) - ); - const [currentVersion, setCurrentVersion] = useState< - Array | undefined - >(loadState>(DefaultFilterKey.VERSIONS)); - const [currentTag, setCurrentTag] = useState | undefined>( - loadState>(DefaultFilterKey.TAGS) - ); - const [currentFolder, setCurrentFolder] = useState( - loadState(DefaultFilterKey.FOLDER, "root") - ); - const [currentFavorite, setCurrentFavorite] = useState< - Array | undefined - >(loadState>(DefaultFilterKey.FAVORITE_STUDIES, [])); - - // NOTE: GET TAG LIST FROM BACKEND - const tagList: Array = []; - - const onFilterClick = (): void => { - setOpenFiler(true); - }; - const onFilterActionClick = ( - managed: boolean, - versions: Array | undefined, - users: Array | undefined, - groups: Array | undefined, - tags: Array | undefined - ): void => { - setManageFilter(managed); - setCurrentVersion(versions); - setCurrentUser(users); - setCurrentGroup(groups); - setCurrentTag(tags); - setOpenFiler(false); - }; - - const getAllStudies = async (refresh: boolean) => { - setLoaded(false); - try { - if (studies.length === 0 || refresh) { - const allStudies = await getStudies(false); - loadStudies(allStudies); - setFilteredStudies(allStudies); - } - } catch (e) { - enqueueErrorSnackbar( - enqueueSnackbar, - t("studymanager:failtoretrievestudies"), - e as AxiosError - ); - } finally { - setLoaded(true); - } - }; - - const versionList = convertVersions(versions || []); - - const sortStudies = (): Array => { - const tmpStudies: Array = ( - [] as Array - ).concat(studies); - if (currentSortItem) { - tmpStudies.sort((studyA: StudyMetadata, studyB: StudyMetadata) => { - const firstElm = - currentSortItem.status === SortStatus.INCREASE ? studyA : studyB; - const secondElm = - currentSortItem.status === SortStatus.INCREASE ? studyB : studyA; - if (currentSortItem.element === SortElement.NAME) { - return firstElm.name.localeCompare(secondElm.name); - } - return moment(firstElm.modificationDate).isAfter( - moment(secondElm.modificationDate) - ) - ? 1 - : -1; - }); - } - return tmpStudies; - }; - - const insideFolder = (study: StudyMetadata): boolean => { - let studyNodeId = ""; - if (study.folder !== undefined && study.folder !== null) - studyNodeId = `root/${study.workspace}/${study.folder}`; - else studyNodeId = `root/${study.workspace}`; - - return studyNodeId.startsWith(currentFolder as string); - }; - - const filter = (currentName: string): StudyMetadata[] => - sortStudies() - .filter( - (s) => - !currentName || - s.name.search(new RegExp(currentName, "i")) !== -1 || - s.id.search(new RegExp(currentName, "i")) !== -1 - ) - .filter((s) => - currentTag - ? s.tags && - s.tags.findIndex((elm) => - (currentTag as Array).includes(elm) - ) >= 0 - : true - ) - .filter( - (s) => - !currentVersion || - currentVersion.map((elm) => elm.id).includes(s.version) - ) - .filter((s) => - currentUser - ? s.owner.id && - (currentUser as Array) - .map((elm) => elm.id) - .includes(s.owner.id) - : true - ) - .filter((s) => - currentGroup - ? s.groups.findIndex((elm) => - (currentGroup as Array).includes(elm) - ) >= 0 - : true - ) - .filter((s) => (managedFilter ? s.managed : true)) - .filter((s) => insideFolder(s)); - - const applyFilter = (): void => { - setLoaded(false); - const f = filter(inputValue); - setFilteredStudies(f); - setLoaded(true); - }; - - const onChange = async (currentName: string) => { - setLoaded(false); - const f = filter(currentName); - setFilteredStudies(f); - setLoaded(true); - if (currentName !== inputValue) setInputValue(currentName); - }; - - const handleFavoriteClick = (value: GenericInfo) => { - const favorite = currentFavorite as Array; - if ( - favorite.findIndex((elm) => (elm.id as string) === (value.id as string)) < - 0 - ) { - setCurrentFavorite(favorite.concat(value)); - return; - } - setCurrentFavorite( - favorite.filter((elm) => (elm.id as string) !== (value.id as string)) - ); - }; - - const init = async () => { - try { - const userRes = await getUsers(); - setUserList(userRes); - - const groupRes = await getGroups(); - setGroupList(groupRes); - } catch (error) { - logErr(error); - } - }; - - useEffect(() => { - init(); - if (!versions) { - loadVersions(); - } - getAllStudies(false); - }, []); - - useEffect(() => { - saveState(DefaultFilterKey.USERS, currentUser); - saveState(DefaultFilterKey.GROUPS, currentGroup); - saveState(DefaultFilterKey.MANAGED, managedFilter); - saveState(DefaultFilterKey.VERSIONS, currentVersion); - saveState(DefaultFilterKey.TAGS, currentTag); - saveState(DefaultFilterKey.SORTING, currentSortItem); - saveState(DefaultFilterKey.FOLDER, currentFolder); - applyFilter(); - }, [ - currentVersion, - currentUser, - currentGroup, - currentTag, - currentSortItem, - managedFilter, - currentFolder, - ]); - - useEffect(() => { - saveState(DefaultFilterKey.FAVORITE_STUDIES, currentFavorite); - }, [currentFavorite]); - - useEffect(() => { - if ( - currentFavorite !== undefined && - currentFavorite.length > 0 && - studies.length > 0 - ) { - setCurrentFavorite( - currentFavorite.filter((elm) => - studies.map((item) => item.id).includes(elm.id as string) - ) - ); - } - applyFilter(); - }, [studies]); - - return ( - } - headerBottom={ - - } - > - - } - /> - - {!loaded && } - {loaded && studies && ( - getAllStudies(true)} - studies={filteredStudies} - sortItem={currentSortItem as SortItem} - setSortItem={setCurrentSortItem} - folder={currentFolder as string} - setFolder={setCurrentFolder} - favorite={ - currentFavorite !== undefined - ? currentFavorite.map((elm) => elm.id as string) - : [] - } - onFavoriteClick={handleFavoriteClick} - /> - )} - {openFilter && ( - } - versionList={versionList} - versions={currentVersion as Array} - userList={userList} - users={currentUser as Array} - groupList={groupList} - groups={currentGroup as Array} - onFilterActionClick={onFilterActionClick} - onClose={() => setOpenFiler(false)} - /> - )} - - - ); -} - -export default connector(Studies); diff --git a/webapp_v2/src/pages/Tasks.tsx b/webapp_v2/src/pages/Tasks.tsx deleted file mode 100644 index 0ffb9cfac8..0000000000 --- a/webapp_v2/src/pages/Tasks.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { useTranslation } from "react-i18next"; -import AssignmentIcon from "@mui/icons-material/Assignment"; -import RootPage from "../components/common/page/RootPage"; - -function Tasks() { - const [t] = useTranslation(); - - return ( - - In progress - - ); -} - -export default Tasks; diff --git a/webapp_v2/src/react-app-env.d.ts b/webapp_v2/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5fc6..0000000000 --- a/webapp_v2/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/webapp_v2/src/services/api/auth.ts b/webapp_v2/src/services/api/auth.ts deleted file mode 100644 index 12d16241f2..0000000000 --- a/webapp_v2/src/services/api/auth.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* eslint-disable camelcase */ -import axios from "axios"; -import moment from "moment"; -import jwt_decode from "jwt-decode"; -import client from "./client"; -import { UserInfo } from "../../common/types"; -import { Config } from "../config"; - -// instance sans crédentials et hooks pour l'authent -const rawAxiosInstance = axios.create(); - -export const initRawAxiosClient = (config: Config): void => { - rawAxiosInstance.defaults.baseURL = `${config.baseUrl}${config.restEndpoint}`; -}; - -export const needAuth = async (): Promise => { - try { - await client.get("/v1/auth"); - return Promise.resolve(false); - } catch (e) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const { status } = (e as any).response; - if (status === 401) { - return Promise.resolve(true); - } - throw e; - } -}; - -export const refresh = async ( - user: UserInfo, - login: (user: UserInfo) => void, - logout: () => void -): Promise => { - if (!user.expirationDate || user.expirationDate < moment().add(5, "s")) { - try { - const res = await rawAxiosInstance.post( - "/v1/refresh", - {}, - { - headers: { - Authorization: `Bearer ${user.refreshToken}`, - }, - } - ); - const userInfoDTO = await res.data; - const tokenData = jwt_decode(userInfoDTO.access_token); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const subject = JSON.parse((tokenData as any).sub); - const userInfo: UserInfo = { - user: userInfoDTO.user, - groups: subject.groups, - id: subject.id, - impersonator: subject.impersonator, - type: subject.type, - accessToken: userInfoDTO.access_token, - refreshToken: userInfoDTO.refresh_token, - }; - login(userInfo); - return userInfo; - } catch (e) { - logout(); - } - return undefined; - } - return undefined; -}; - -export const login = async ( - username: string, - password: string -): Promise => { - const res = await rawAxiosInstance.post("/v1/login", { username, password }); - const userInfo = await res.data; - const tokenData = jwt_decode(userInfo.access_token); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const subject = JSON.parse((tokenData as any).sub); - const infos: UserInfo = { - user: userInfo.user, - groups: subject.groups, - id: subject.id, - impersonator: subject.impersonator, - type: subject.type, - accessToken: userInfo.access_token, - refreshToken: userInfo.refresh_token, - }; - return infos; -}; - -export default {}; diff --git a/webapp_v2/src/services/api/client.ts b/webapp_v2/src/services/api/client.ts deleted file mode 100644 index 63a44bb823..0000000000 --- a/webapp_v2/src/services/api/client.ts +++ /dev/null @@ -1,74 +0,0 @@ -import axios, { AxiosResponse, AxiosRequestConfig } from "axios"; -import debug from "debug"; -import Cookies from "js-cookie"; -import { Config } from "../config"; -import { UserInfo } from "../../common/types"; - -const logError = debug("antares:client:error"); -const logInfo = debug("antares:client:info"); - -const client = axios.create(); - -export const setLogoutInterceptor = ( - logoutCallback: () => void, - clearStudies: () => void -): void => { - client.interceptors.response.use( - async (c): Promise => c, - async (e) => { - logError("api error", e.response); - const { status } = e.response; - if (e && status === 401) { - client.defaults.headers.common.Authorization = ""; - clearStudies(); - logoutCallback(); - } - return Promise.reject(e); - } - ); -}; - -let axiosInterceptor: number; - -export const initAxiosClient = (config: Config): void => { - client.defaults.baseURL = `${config.baseUrl}${config.restEndpoint}`; -}; - -export const setAuth = (token: string | undefined): void => { - if (token) { - client.defaults.headers.common.Authorization = `Bearer ${token}`; - Cookies.set("access_token_cookie", token); - } else { - delete client.defaults.headers.common.Authorization; - if (axiosInterceptor !== undefined) { - client.interceptors.request.eject(axiosInterceptor); - } - Cookies.remove("access_token_cookie"); - } -}; - -export const updateRefreshInterceptor = ( - refreshToken: () => Promise -): void => { - logInfo("Updating refresh interceptor"); - if (axiosInterceptor !== undefined) { - client.interceptors.request.eject(axiosInterceptor); - } - - axiosInterceptor = client.interceptors.request.use( - async (config): Promise => { - try { - const user = await refreshToken(); - if (user && config && config.headers) { - // eslint-disable-next-line no-param-reassign - config.headers.Authorization = `Bearer ${user.accessToken}`; - } - } catch (e) { - logError("Failed to refresh token", e); - } - return config; - } - ); -}; - -export default client; diff --git a/webapp_v2/src/services/api/downloads.ts b/webapp_v2/src/services/api/downloads.ts deleted file mode 100644 index 9b60bd3621..0000000000 --- a/webapp_v2/src/services/api/downloads.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { getConfig } from "../config"; -import client from "./client"; - -export interface FileDownloadDTO { - id: string; - name: string; - filename: string; - // eslint-disable-next-line camelcase - expiration_date: string; - ready: boolean; - failed: boolean; - // eslint-disable-next-line camelcase - error_message: string; -} - -export interface FileDownload { - id: string; - name: string; - filename: string; - expirationDate: string; - ready: boolean; - failed: boolean; - errorMessage: string; -} - -export interface FileDownloadTask { - file: FileDownloadDTO; - task: string; -} - -export const convertFileDownloadDTO = ( - fileDownload: FileDownloadDTO -): FileDownload => ({ - id: fileDownload.id, - name: fileDownload.name, - filename: fileDownload.filename, - expirationDate: fileDownload.expiration_date, - ready: fileDownload.ready, - failed: fileDownload.failed, - errorMessage: fileDownload.error_message, -}); - -export const getDownloadsList = async (): Promise> => { - const res = await client.get("/v1/downloads"); - return res.data.map(convertFileDownloadDTO); -}; - -export const getDownloadUrl = (did: string): string => - `${ - getConfig().downloadHostUrl || - getConfig().baseUrl + getConfig().restEndpoint - }/v1/downloads/${did}`; diff --git a/webapp_v2/src/services/api/file.ts b/webapp_v2/src/services/api/file.ts deleted file mode 100644 index b80ffc8281..0000000000 --- a/webapp_v2/src/services/api/file.ts +++ /dev/null @@ -1,8 +0,0 @@ -import client from "./client"; - -export const getFileData = async (fileUrl: string): Promise => { - const res = await client.get(fileUrl); - return res.data; -}; - -export default {}; diff --git a/webapp_v2/src/services/api/maintenance.ts b/webapp_v2/src/services/api/maintenance.ts deleted file mode 100644 index 5cc707a1b7..0000000000 --- a/webapp_v2/src/services/api/maintenance.ts +++ /dev/null @@ -1,23 +0,0 @@ -import client from "./client"; - -export const getMaintenanceMode = async (): Promise => { - const res = await client.get("/v1/core/maintenance"); - return res.data; -}; - -export const updateMaintenanceMode = async (data: boolean): Promise => { - const res = await client.post(`/v1/core/maintenance?maintenance=${data}`); - return res.data; -}; - -export const getMessageInfo = async (): Promise => { - const res = await client.get("/v1/core/maintenance/message"); - return res.data; -}; - -export const updateMessageInfo = async (data: string): Promise => { - const res = await client.post("/v1/core/maintenance/message", data); - return res.data; -}; - -export default {}; diff --git a/webapp_v2/src/services/api/matrix.ts b/webapp_v2/src/services/api/matrix.ts deleted file mode 100644 index 8cc67c034e..0000000000 --- a/webapp_v2/src/services/api/matrix.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { AxiosRequestConfig } from "axios"; -import client from "./client"; -import { - MatrixDTO, - MatrixDataSetDTO, - MatrixInfoDTO, - MatrixDataSetUpdateDTO, -} from "../../common/types"; -import { FileDownloadTask } from "./downloads"; -import { getConfig } from "../config"; - -export const getMatrixList = async ( - name = "", - filterOwn = false -): Promise> => { - const res = await client.get( - `/v1/matrixdataset/_search?name=${encodeURI(name)}&filter_own=${filterOwn}` - ); - return res.data; -}; - -export const getMatrix = async (id: string): Promise => { - const res = await client.get(`/v1/matrix/${id}`); - return res.data; -}; - -export const getExportMatrixUrl = (matrixId: string): string => - `${ - getConfig().downloadHostUrl || - getConfig().baseUrl + getConfig().restEndpoint - }/v1/matrix/${matrixId}/download`; - -export const exportMatrixDataset = async ( - datasetId: string -): Promise => { - const res = await client.get(`/v1/matrixdataset/${datasetId}/download`); - return res.data; -}; - -export const createMatrixByImportation = async ( - file: File, - json: boolean, - onProgress?: (progress: number) => void -): Promise> => { - const options: AxiosRequestConfig = {}; - if (onProgress) { - options.onUploadProgress = (progressEvent): void => { - const percentCompleted = Math.round( - (progressEvent.loaded * 100) / progressEvent.total - ); - onProgress(percentCompleted); - }; - } - const formData = new FormData(); - formData.append("file", file); - const restconfig = { - ...options, - headers: { - "content-type": "multipart/form-data", - "Access-Control-Allow-Origin": "*", - }, - }; - const res = await client.post( - `/v1/matrix/_import?json=${json}`, - formData, - restconfig - ); - return res.data; -}; - -export const createDataSet = async ( - metadata: MatrixDataSetUpdateDTO, - matrices: Array -): Promise => { - const data = { metadata, matrices }; - const res = await client.post("/v1/matrixdataset", data); - return res.data; -}; - -export const updateDataSet = async ( - id: string, - metadata: MatrixDataSetUpdateDTO -): Promise => { - const res = await client.put(`/v1/matrixdataset/${id}/metadata`, metadata); - return res.data; -}; - -export const deleteDataSet = async (id: string): Promise => { - const res = await client.delete(`/v1/matrixdataset/${id}`); - return res.data; -}; - -export default {}; diff --git a/webapp_v2/src/services/api/misc.ts b/webapp_v2/src/services/api/misc.ts deleted file mode 100644 index b4bbe4dff0..0000000000 --- a/webapp_v2/src/services/api/misc.ts +++ /dev/null @@ -1,13 +0,0 @@ -import client from "./client"; - -export interface APIVersion { - version: string; - gitcommit: string; -} - -export const getVersion = async (): Promise => { - const res = await client.get("/version"); - return res.data; -}; - -export default {}; diff --git a/webapp_v2/src/services/api/study.ts b/webapp_v2/src/services/api/study.ts deleted file mode 100644 index 3c364bd5b3..0000000000 --- a/webapp_v2/src/services/api/study.ts +++ /dev/null @@ -1,375 +0,0 @@ -import { AxiosRequestConfig } from "axios"; -import client from "./client"; -import { - FileStudyTreeConfigDTO, - LaunchJob, - MatrixAggregationResult, - StudyOutputDownloadDTO, - StudyMetadata, - StudyMetadataDTO, - StudyOutput, - StudyPublicMode, - AreasConfig, - SingleAreaConfig, - StudyProperties, - LaunchJobDTO, - StudyMetadataPatchDTO, -} from "../../common/types"; -import { getConfig } from "../config"; -import { convertStudyDtoToMetadata } from "../utils"; -import { FileDownloadTask } from "./downloads"; - -const getStudiesRaw = async ( - summary = true -): Promise<{ [sid: string]: StudyMetadataDTO }> => { - const res = await client.get(`/v1/studies?summary=${summary}`); - return res.data; -}; - -export const getStudies = async (summary = true): Promise => { - const rawStudyList = await getStudiesRaw(summary); - return Object.keys(rawStudyList).map((sid) => { - const study = rawStudyList[sid]; - return convertStudyDtoToMetadata(sid, study); - }); -}; - -export const getStudyVersions = async (): Promise> => { - const res = await client.get("/v1/studies/_versions"); - return res.data; -}; - -export const getStudyData = async ( - sid: string, - path = "", - depth = 1 - // eslint-disable-next-line @typescript-eslint/no-explicit-any -): Promise => { - const res = await client.get( - `/v1/studies/${sid}/raw?path=${encodeURIComponent(path)}&depth=${depth}` - ); - return res.data; -}; - -export const getComments = async (sid: string): Promise => { - const res = await client.get(`/v1/studies/${sid}/comments`); - return res.data; -}; - -export const getSynthesis = async (uuid: string): Promise => { - const res = await client.get(`/v1/studies/${uuid}/synthesis`); - return res.data; -}; - -export const getAreaPositions = async ( - uuid: string, - path: string, - depth = -1 -): Promise => { - const res = await client.get( - `v1/studies/${uuid}/raw?path=/input/areas/${encodeURIComponent( - path - )}/ui&depth=${depth}` - ); - return res.data; -}; - -export const getStudyMetadata = async ( - sid: string, - summary = true -): Promise => { - const res = await client.get(`/v1/studies/${sid}?summary=${summary}`); - return convertStudyDtoToMetadata(sid, res.data); -}; - -export const getStudyOutputs = async ( - sid: string -): Promise> => { - const res = await client.get(`/v1/studies/${sid}/outputs`); - return res.data; -}; - -export const getStudySynthesis = async ( - sid: string -): Promise => { - const res = await client.get(`/v1/studies/${sid}/synthesis`); - return res.data; -}; - -export const downloadOutput = async ( - sid: string, - output: string, - data: StudyOutputDownloadDTO, - jsonFormat = false, - useTask = true -): Promise => { - const restconfig = { - headers: { - Accept: "application/zip", - responseType: "blob", - "Access-Control-Allow-Origin": "*", - }, - }; - const res = await client.post( - `/v1/studies/${sid}/outputs/${output}/download?use_task=${useTask}`, - data, - jsonFormat ? {} : restconfig - ); - return res.data; -}; - -export const createStudy = async ( - name: string, - version: number, - groups?: Array -): Promise => { - const groupIds = - groups && groups.length > 0 ? `&groups=${groups.join(",")}` : ""; - const res = await client.post( - `/v1/studies?name=${encodeURIComponent(name)}&version=${version}${groupIds}` - ); - return res.data; -}; - -export const editStudy = async ( - data: object, - sid: string, - path = "", - depth = 1 -): Promise => { - const res = await client.post( - `/v1/studies/${sid}/raw?path=${encodeURIComponent(path)}&depth=${depth}`, - data - ); - return res.data; -}; - -export const copyStudy = async ( - sid: string, - name: string, - withOutputs: boolean -): Promise => { - const res = await client.post( - `/v1/studies/${sid}/copy?dest=${encodeURIComponent( - name - )}&with_outputs=${withOutputs}` - ); - return res.data; -}; - -export const archiveStudy = async (sid: string): Promise => { - await client.put(`/v1/studies/${sid}/archive`); -}; - -export const unarchiveStudy = async (sid: string): Promise => { - await client.put(`/v1/studies/${sid}/unarchive`); -}; - -export const deleteStudy = async (sid: string): Promise => { - const res = await client.delete(`/v1/studies/${sid}`); - return res.data; -}; - -export const editComments = async ( - sid: string, - newComments: string -): Promise => { - const data = { comments: newComments }; - const res = await client.put(`/v1/studies/${sid}/comments`, data); - return res.data; -}; - -export const exportStudy = async ( - sid: string, - skipOutputs: boolean -): Promise => { - const res = await client.get( - `/v1/studies/${sid}/export?no_output=${skipOutputs}` - ); - return res.data; -}; - -export const getExportUrl = (sid: string, skipOutputs = false): string => - `${ - getConfig().downloadHostUrl || - getConfig().baseUrl + getConfig().restEndpoint - }/v1/studies/${sid}/export?no_output=${skipOutputs}`; - -export const exportOuput = async ( - sid: string, - output: string -): Promise => { - const res = await client.get(`/v1/studies/${sid}/outputs/${output}/export`); - return res.data; -}; - -export const importStudy = async ( - file: File, - onProgress?: (progress: number) => void -): Promise => { - const options: AxiosRequestConfig = {}; - if (onProgress) { - options.onUploadProgress = (progressEvent): void => { - const percentCompleted = Math.round( - (progressEvent.loaded * 100) / progressEvent.total - ); - onProgress(percentCompleted); - }; - } - const formData = new FormData(); - formData.append("study", file); - const restconfig = { - ...options, - headers: { - "content-type": "multipart/form-data", - "Access-Control-Allow-Origin": "*", - }, - }; - const res = await client.post("/v1/studies/_import", formData, restconfig); - return res.data; -}; - -export const importFile = async ( - file: File, - study: string, - path: string, - onProgress?: (progress: number) => void -): Promise => { - const options: AxiosRequestConfig = {}; - if (onProgress) { - options.onUploadProgress = (progressEvent): void => { - const percentCompleted = Math.round( - (progressEvent.loaded * 100) / progressEvent.total - ); - onProgress(percentCompleted); - }; - } - const formData = new FormData(); - formData.append("file", file); - const restconfig = { - ...options, - headers: { - "content-type": "multipart/form-data", - "Access-Control-Allow-Origin": "*", - }, - }; - const res = await client.put( - `/v1/studies/${study}/raw?path=${encodeURIComponent(path)}`, - formData, - restconfig - ); - return res.data; -}; - -export interface LaunchOptions { - xpansion?: boolean; - // eslint-disable-next-line camelcase - xpansion_r_version?: boolean; - // eslint-disable-next-line camelcase - nb_cpu?: number; - // eslint-disable-next-line camelcase - time_limit?: number; - // eslint-disable-next-line camelcase - post_processing?: boolean; - // eslint-disable-next-line camelcase - adequacy_patch?: object; -} - -export const launchStudy = async ( - sid: string, - options: LaunchOptions = {} -): Promise => { - const res = await client.post(`/v1/launcher/run/${sid}`, options); - return res.data; -}; - -export const killStudy = async (jid: string): Promise => { - const res = await client.post(`/v1/launcher/jobs/${jid}/kill`); - return res.data; -}; - -export const mapLaunchJobDTO = (j: LaunchJobDTO): LaunchJob => ({ - id: j.id, - studyId: j.study_id, - status: j.status, - creationDate: j.creation_date, - completionDate: j.completion_date, - msg: j.msg, - outputId: j.output_id, - exitCode: j.exit_code, -}); - -export const getStudyJobs = async (sid?: string): Promise => { - const query = sid ? `?study=${sid}` : ""; - const res = await client.get(`/v1/launcher/jobs${query}`); - const data = await res.data; - return data.map(mapLaunchJobDTO); -}; - -export const getStudyJobLog = async ( - jid: string, - logType = "STDOUT" -): Promise => { - const res = await client.get( - `/v1/launcher/jobs/${jid}/logs?log_type=${logType}` - ); - return res.data; -}; - -export const changeStudyOwner = async ( - studyId: string, - newOwner: number -): Promise => { - const res = await client.put(`/v1/studies/${studyId}/owner/${newOwner}`); - return res.data; -}; - -export const deleteStudyGroup = async ( - studyId: string, - groupId: string -): Promise => { - const res = await client.delete(`/v1/studies/${studyId}/groups/${groupId}`); - return res.data; -}; - -export const addStudyGroup = async ( - studyId: string, - groupId: string -): Promise => { - const res = await client.put(`/v1/studies/${studyId}/groups/${groupId}`); - return res.data; -}; - -export const changePublicMode = async ( - studyId: string, - publicMode: StudyPublicMode -): Promise => { - const res = await client.put( - `/v1/studies/${studyId}/public_mode/${publicMode}` - ); - return res.data; -}; - -export const renameStudy = async ( - studyId: string, - name: string -): Promise => { - const res = await client.put(`/v1/studies/${studyId}`, { - name, - }); - return res.data; -}; - -export const updateStudyMetadata = async ( - studyId: string, - data: StudyMetadataPatchDTO -): Promise => { - const res = await client.put(`/v1/studies/${studyId}`, data); - return res.data; -}; - -export const scanFolder = async (folderPath: string): Promise => { - await client.post(`/v1/watcher/_scan?path=${encodeURIComponent(folderPath)}`); -}; - -export default {}; diff --git a/webapp_v2/src/services/api/studydata.ts b/webapp_v2/src/services/api/studydata.ts deleted file mode 100644 index 85ef460a1d..0000000000 --- a/webapp_v2/src/services/api/studydata.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { - AreaInfoDTO, - LinkCreationInfo, - UpdateAreaUi, -} from "../../common/types"; -import client from "./client"; - -export const createArea = async ( - uuid: string, - name: string -): Promise => { - const res = await client.post(`/v1/studies/${uuid}/areas?uuid=${uuid}`, { - name, - type: "AREA", - }); - return res.data; -}; - -export const createLink = async ( - uuid: string, - linkCreationInfo: LinkCreationInfo -): Promise => { - const res = await client.post( - `/v1/studies/${uuid}/links?uuid=${uuid}`, - linkCreationInfo - ); - return res.data; -}; - -export const updateAreaUI = async ( - uuid: string, - areaId: string, - areaUi: UpdateAreaUi -): Promise => { - const res = await client.put( - `/v1/studies/${uuid}/areas/${areaId}/ui?uuid=${uuid}&area_id=${areaId}`, - areaUi - ); - return res.data; -}; - -export const deleteArea = async ( - uuid: string, - areaId: string -): Promise => { - const res = await client.delete( - `/v1/studies/${uuid}/areas/${areaId}?uuid=${uuid}&area_id=${areaId}` - ); - return res.data; -}; - -export const deleteLink = async ( - uuid: string, - areaIdFrom: string, - areaIdTo: string -): Promise => { - const res = await client.delete( - `/v1/studies/${uuid}/links/${areaIdFrom}/${areaIdTo}?uuid=${uuid}&area_from=${areaIdFrom}&area_to=${areaIdTo}` - ); - return res.data; -}; - -export const getAllLinks = async ( - uuid: string -): Promise> => { - const res = await client.get(`/v1/studies/${uuid}/links`); - return res.data; -}; - -export default {}; diff --git a/webapp_v2/src/services/api/user.ts b/webapp_v2/src/services/api/user.ts deleted file mode 100644 index 0666ca9596..0000000000 --- a/webapp_v2/src/services/api/user.ts +++ /dev/null @@ -1,150 +0,0 @@ -import client from "./client"; -import { - UserDTO, - GroupDTO, - RoleCreationDTO, - RoleDTO, - UserToken, - UserGroup, - Identity, - IdentityDTO, - BotCreateDTO, - BotIdentityDTO, - BotDTO, -} from "../../common/types"; - -/** ******************************************* */ -/* Users */ -/** ******************************************* */ - -export const getUsers = async (): Promise> => { - const res = await client.get("/v1/users"); - return res.data; -}; - -export const createNewUser = async ( - name: string, - password: string -): Promise => { - const data = { name, password }; - const res = await client.post("/v1/users", data); - return res.data; -}; - -export const getUser = async (id: number): Promise => { - const res = await client.get(`/v1/users/${id}`); - return res.data; -}; - -export const getUserInfos = async (id: number): Promise => { - const res = await client.get(`/v1/users/${id}?details=true`); - return res.data; -}; - -export const deleteUser = async (id: number): Promise => { - const res = await client.delete(`/v1/users/${id}`); - return res.data; -}; - -/** ******************************************* */ -/* Groups */ -/** ******************************************* */ - -export const getGroups = async (): Promise> => { - const res = await client.get("/v1/groups"); - return res.data; -}; - -export const getGroupInfos = async (id: string): Promise => { - const res = await client.get( - `/v1/groups/${encodeURIComponent(id)}?details=true` - ); - return res.data; -}; - -export const createGroup = async (name: string): Promise => { - const data = { name }; - const res = await client.post("/v1/groups", data); - return res.data; -}; - -export const updateGroup = async ( - id: string, - name: string -): Promise => { - const data = { id, name }; - const res = await client.post("/v1/groups", data); - return res.data; -}; - -export const deleteGroup = async (id: string): Promise => { - const res = await client.delete(`/v1/groups/${encodeURIComponent(id)}`); - return res.data; -}; - -/** ******************************************* */ -/* Roles */ -/** ******************************************* */ - -export const getAllRolesInGroup = async ( - groupId: string -): Promise> => { - const res = await client.get(`/v1/roles/group/${groupId}`); - return res.data; -}; - -export const createRole = async (role: RoleCreationDTO): Promise => { - const data = role; - const res = await client.post("/v1/roles", data); - return res.data; -}; - -export const deleteUserRole = async ( - groupId: string, - userId: number -): Promise => { - const res = await client.delete(`/v1/roles/${groupId}/${userId}`); - return res.data; -}; - -export const deleteAllRoles = async (id: number): Promise => { - const res = await client.delete(`/v1/users/roles/${id}`); - return res.data; -}; - -/** ******************************************* */ -/* Tokens */ -/** ******************************************* */ - -export const createNewBot = async (bot: BotCreateDTO): Promise => { - const data = bot; - const res = await client.post("/v1/bots", data); - return res.data; -}; - -export const getBots = async (owner?: number): Promise> => { - const req = `/v1/bots${owner ? `?owner=${owner}` : ""}`; - const res = await client.get(req); - return res.data; -}; - -export const getBotInfos = async (id: number): Promise => { - const res = await client.get(`/v1/bots/${id}?verbose=1`); - return res.data; -}; - -export const deleteBot = async (id: number): Promise => { - const res = await client.delete(`/v1/bots/${id}`); - return res.data; -}; - -export const getAdminTokenList = async (): Promise> => { - const users = await getUsers(); - - return Promise.all( - users.map(async (user) => ({ - user, - bots: await getBots(user.id), - })) - ); -}; diff --git a/webapp_v2/src/services/api/variant.ts b/webapp_v2/src/services/api/variant.ts deleted file mode 100644 index 2b58d5361c..0000000000 --- a/webapp_v2/src/services/api/variant.ts +++ /dev/null @@ -1,155 +0,0 @@ -import client from "./client"; -import { - CommandDTO, - FileStudyTreeConfigDTO, - StudyMetadata, - StudyMetadataDTO, - TaskDTO, - VariantTree, -} from "../../common/types"; -import { convertStudyDtoToMetadata, convertVariantTreeDTO } from "../utils"; - -export const getVariantChildren = async (id: string): Promise => { - const res = await client.get(`/v1/studies/${id}/variants`); - return convertVariantTreeDTO(res.data); -}; - -export const getVariantParents = async ( - id: string -): Promise => { - const res = await client.get(`/v1/studies/${id}/parents`); - return res.data.map((elm: StudyMetadataDTO) => - convertStudyDtoToMetadata(elm.id, elm) - ); -}; - -export const getDirectParent = async ( - id: string -): Promise => { - const res = await client.get(`/v1/studies/${id}/parents?direct=true`); - if (res.data) { - return convertStudyDtoToMetadata(res.data.id, res.data); - } - return undefined; -}; - -export const createVariant = async ( - id: string, - name: string -): Promise => { - const res = await client.post( - `/v1/studies/${id}/variants?name=${encodeURIComponent(name)}` - ); - return res.data; -}; - -export const appendCommands = async ( - studyId: string, - commands: Array -): Promise => { - const res = await client.post(`/v1/studies/${studyId}/commands`, commands); - return res.data; -}; - -export const appendCommand = async ( - studyId: string, - command: CommandDTO -): Promise => { - const res = await client.post(`/v1/studies/${studyId}/command`, command); - return res.data; -}; - -export const moveCommand = async ( - studyId: string, - commandId: string, - index: number -): Promise => { - const res = await client.put( - `/v1/studies/${studyId}/commands/${commandId}/move?index=${encodeURIComponent( - index - )}` - ); - return res.data; -}; - -export const updateCommand = async ( - studyId: string, - commandId: string, - command: CommandDTO -): Promise => { - const res = await client.put( - `/v1/studies/${studyId}/commands/${commandId}`, - command - ); - return res.data; -}; - -export const replaceCommands = async ( - studyId: string, - commands: Array -): Promise => { - const res = await client.put(`/v1/studies/${studyId}/commands`, commands); - return res.data; -}; - -export const deleteCommand = async ( - studyId: string, - commandId: string -): Promise => { - const res = await client.delete( - `/v1/studies/${studyId}/commands/${commandId}` - ); - return res.data; -}; - -export const deleteAllCommands = async (studyId: string): Promise => { - const res = await client.delete(`/v1/studies/${studyId}/commands`); - return res.data; -}; - -export const getCommand = async ( - studyId: string, - commandId: string -): Promise => { - const res = await client.get(`/v1/studies/${studyId}/commands/${commandId}`); - return res.data; -}; - -export const getCommands = async ( - studyId: string -): Promise> => { - const res = await client.get(`/v1/studies/${studyId}/commands`); - return res.data; -}; - -export const applyCommands = async ( - studyId: string, - denormalize = false -): Promise => { - const res = await client.put( - `/v1/studies/${studyId}/generate?denormalize=${denormalize}&from_scratch=true` - ); - return res.data; -}; - -export const getStudyTask = async (studyId: string): Promise => { - const res = await client.get(`/v1/studies/${studyId}/task`); - return res.data; -}; - -export const getTask = async ( - id: string, - withLogs = false -): Promise => { - const res = await client.get(`/v1/tasks/${id}?with_logs=${withLogs}`); - return res.data; -}; - -export const getStudySynthesis = async ( - studyId: string -): Promise => { - const res = await client.get(`/v1/studies/${studyId}/synthesis`); - return res.data; -}; - -export default {}; diff --git a/webapp_v2/src/services/config.ts b/webapp_v2/src/services/config.ts deleted file mode 100644 index 41666cf2a6..0000000000 --- a/webapp_v2/src/services/config.ts +++ /dev/null @@ -1,147 +0,0 @@ -import debug from "debug"; -import axios from "axios"; -import moment from "moment"; -import { initAxiosClient } from "./api/client"; -import { initRawAxiosClient } from "./api/auth"; -import { APIVersion, getVersion } from "./api/misc"; - -const info = debug("antares:config:info"); -const warn = debug("antares:config:warn"); - -moment.locale("fr", { - months: - "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split( - "_" - ), - monthsShort: - "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), - monthsParseExact: true, - weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), - weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), - weekdaysMin: "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"), - weekdaysParseExact: true, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd D MMMM YYYY HH:mm", - }, - calendar: { - sameDay: "[Aujourd’hui à] LT", - nextDay: "[Demain à] LT", - nextWeek: "dddd [à] LT", - lastDay: "[Hier à] LT", - lastWeek: "dddd [dernier à] LT", - sameElse: "L", - }, - relativeTime: { - future: "dans %s", - past: "il y a %s", - s: "quelques secondes", - m: "une minute", - mm: "%d minutes", - h: "une heure", - hh: "%d heures", - d: "un jour", - dd: "%d jours", - M: "un mois", - MM: "%d mois", - y: "un an", - yy: "%d ans", - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal(number) { - return number + (number === 1 ? "er" : "e"); - }, - meridiemParse: /PD|MD/, - isPM(input) { - return input.charAt(0) === "M"; - }, - // In case the meridiem units are not separated around 12, then implement - // this function (look at locale/id.js for an example). - // meridiemHour : function (hour, meridiem) { - // return /* 0-23 hour, given meridiem token and hour 1-12 */ ; - // }, - meridiem(hours, minutes, isLower) { - return hours < 12 ? "PD" : "MD"; - }, - week: { - dow: 1, // Monday is the first day of the week. - doy: 4, // Used to determine first week of the year. - }, -}); - -export interface Config { - baseUrl: string; - applicationHome: string; - restEndpoint: string; - wsUrl: string; - wsEndpoint: string; - hidden: boolean; - downloadHostUrl?: string; - version: APIVersion; - maintenanceMode: boolean; -} - -let config: Config = { - baseUrl: "", - applicationHome: "", - restEndpoint: "", - wsUrl: "", - wsEndpoint: "/ws", - hidden: false, - version: { - version: "unknown", - gitcommit: "unknown", - }, - maintenanceMode: false, -}; - -if (process.env.NODE_ENV === "development") { - config.applicationHome = ""; - config.baseUrl = "http://localhost:3000"; - config.wsUrl = "ws://localhost:8080"; - config.downloadHostUrl = "http://localhost:8080"; - localStorage.setItem("debug", "antares:*"); -} else { - config.baseUrl = `${window.location.origin}`; - config.wsUrl = `ws${window.location.protocol === "https:" ? "s" : ""}://${ - window.location.host - }`; - // config.hidden = true; -} - -export const getConfig = (): Config => config; - -export const initConfig = async ( - callback: (appConfig: Config) => void -): Promise => { - try { - const res = await axios.get("/config.json", { baseURL: "/" }); - config = { - ...config, - ...res.data, - }; - } catch (e) { - warn("Failed to retrieve site config. Will use default env configuration."); - } - - initAxiosClient(config); - initRawAxiosClient(config); - - try { - const res = await getVersion(); - config = { - ...config, - version: res, - }; - } catch (e) { - warn("Failed to retrieve API Version"); - } - - info("config is", config); - // to let the initAxiosClient complete - setTimeout(() => callback(config), 50); -}; diff --git a/webapp_v2/src/services/utils/globalWsListeners.ts b/webapp_v2/src/services/utils/globalWsListeners.ts deleted file mode 100644 index 9ba89679e0..0000000000 --- a/webapp_v2/src/services/utils/globalWsListeners.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Store } from "redux"; -import { addStudies, removeStudies } from "../../store/study"; -import { getStudyMetadata } from "../api/study"; -import { StudySummary, WSEvent, WSMessage } from "../../common/types"; -import { - addListenerAction, - refreshHandlerAction, -} from "../../store/websockets"; -import { AppState } from "../../store/reducers"; -import { isStringEmpty } from "."; -import { setMaintenanceMode, setMessageInfo } from "../../store/global"; - -const studyListener = - (reduxStore: Store) => - async (ev: WSMessage): Promise => { - const studySummary = ev.payload as StudySummary; - switch (ev.type) { - case WSEvent.STUDY_CREATED: - reduxStore.dispatch( - addStudies([await getStudyMetadata(studySummary.id)]) - ); - break; - case WSEvent.STUDY_DELETED: - reduxStore.dispatch(removeStudies([studySummary.id])); - break; - case WSEvent.STUDY_EDITED: - reduxStore.dispatch( - addStudies([await getStudyMetadata(studySummary.id)]) - ); - break; - - default: - break; - } - }; - -const maintenanceListener = - (reduxStore: Store) => - (ev: WSMessage): void => { - switch (ev.type) { - case WSEvent.MAINTENANCE_MODE: - reduxStore.dispatch(setMaintenanceMode(ev.payload as boolean)); - break; - case WSEvent.MESSAGE_INFO: - reduxStore.dispatch( - setMessageInfo( - isStringEmpty(ev.payload as string) ? "" : (ev.payload as string) - ) - ); - break; - default: - break; - } - }; - -export const addWsListeners = async ( - reduxStore: Store -): Promise => { - /* ADD LISTENERS HERE */ - reduxStore.dispatch(addListenerAction(studyListener(reduxStore))); - reduxStore.dispatch(addListenerAction(maintenanceListener(reduxStore))); - reduxStore.dispatch(refreshHandlerAction()); -}; - -export default {}; diff --git a/webapp_v2/src/services/utils/index.ts b/webapp_v2/src/services/utils/index.ts deleted file mode 100644 index 88e58f2fbe..0000000000 --- a/webapp_v2/src/services/utils/index.ts +++ /dev/null @@ -1,262 +0,0 @@ -import * as React from "react"; -import moment from "moment"; -import { useSnackbar, OptionsObject } from "notistack"; -import debug from "debug"; -import { TFunction } from "react-i18next"; -import { - StudyMetadataDTO, - StudyMetadata, - JWTGroup, - UserInfo, - RoleType, - VariantTreeDTO, - VariantTree, - GenericInfo, -} from "../../common/types"; -import { getMaintenanceMode, getMessageInfo } from "../api/maintenance"; -import { getConfig } from "../config"; - -const logInfo = debug("antares:utils"); - -export const convertStudyDtoToMetadata = ( - sid: string, - metadata: StudyMetadataDTO -): StudyMetadata => ({ - id: sid, - name: metadata.name, - creationDate: metadata.created, - modificationDate: metadata.updated, - owner: metadata.owner, - groups: metadata.groups, - type: metadata.type, - publicMode: metadata.public_mode, - version: metadata.version.toString(), - workspace: metadata.workspace, - managed: metadata.managed, - archived: metadata.archived, - folder: metadata.folder, - horizon: metadata.horizon, - scenario: metadata.scenario, - status: metadata.status, - doc: metadata.doc, - tags: metadata.tags, -}); - -export const convertVariantTreeDTO = ( - variantTree: VariantTreeDTO -): VariantTree => ({ - node: convertStudyDtoToMetadata(variantTree.node.id, variantTree.node), - children: (variantTree.children || []).map((child: VariantTreeDTO) => - convertVariantTreeDTO(child) - ), -}); - -// eslint-disable-next-line no-undef -export const useNotif = (): (( - message: React.ReactNode, - options?: OptionsObject | undefined -) => React.ReactText) => { - const { enqueueSnackbar } = useSnackbar(); - return enqueueSnackbar; -}; - -export const isUserAdmin = (user: UserInfo): boolean => { - if (user) { - const adminElm = user.groups.find( - (elm: JWTGroup) => elm.id === "admin" && elm.role === RoleType.ADMIN - ); - return !!adminElm; - } - return false; -}; - -export const isGroupAdmin = (user: UserInfo): boolean => { - if (user) { - const adminElm = user.groups.find( - (elm: JWTGroup) => elm.role === RoleType.ADMIN - ); - return !!adminElm; - } - return false; -}; - -export const roleToString = (role: RoleType): string => { - switch (role) { - case RoleType.ADMIN: - return "settings:adminRole"; - - case RoleType.RUNNER: - return "settings:runnerRole"; - - case RoleType.WRITER: - return "settings:writerRole"; - - case RoleType.READER: - return "settings:readerRole"; - - default: - break; - } - return ""; -}; - -export const hasAuthorization = ( - user: UserInfo | undefined, - study: StudyMetadata, - role: RoleType -): boolean => { - if (user) { - // User is super admin - if (isUserAdmin(user)) { - return true; - } - - if (study) { - // User is owner of this study - if (study.owner.id && study.owner.id === user.id) { - return true; - } - // User is admin of 1 of study groups - return ( - study.groups.findIndex((studyGroupElm) => - user.groups.find( - (userGroupElm) => - studyGroupElm.id === userGroupElm.id && userGroupElm.role >= role - ) - ) >= 0 - ); - } - } - return false; -}; - -export const getStudyExtendedName = (study: StudyMetadata): string => { - if (study.folder) { - return `${study.name} (${study.folder})`; - } - return study.name; -}; - -export const convertUTCToLocalTime = (date: string): string => - moment.utc(date).local().format("YYYY-MM-DD HH:mm:ss"); - -export const modificationDate = (date: string): moment.Duration => - moment.duration( - moment(Date.now()).diff(moment(convertUTCToLocalTime(date))), - "milliseconds" - ); - -export const exportText = (fileData: string, filename: string): void => { - const blob = new Blob([fileData], { type: "application/txt" }); - const url = URL.createObjectURL(blob); - const link = document.createElement("a"); - link.download = filename; - link.href = url; - link.click(); - link.remove(); -}; - -export const displayVersionName = (version: string): string => - version.split("").join("."); - -export const convertVersions = (versions: Array): Array => - versions.map((version) => ({ - id: version, - name: displayVersionName(version), - })); - -export const getMaintenanceStatus = async (): Promise => { - const { maintenanceMode } = getConfig(); - try { - const tmpMaintenance = await getMaintenanceMode(); - return tmpMaintenance; - } catch (e) { - logInfo("Failed to retrieve maintenance status", e); - } - return maintenanceMode; -}; - -export const getInitMessageInfo = async (): Promise => { - try { - const tmpMessage = await getMessageInfo(); - return tmpMessage; - } catch (e) { - logInfo("Failed to retrieve message info", e); - } - return ""; -}; - -export const isStringEmpty = (data: string): boolean => - data.replace(/\s/g, "") === ""; - -export const buildModificationDate = ( - date: string, - t: TFunction<"translation", undefined>, - language = "en" -): string => { - const duration = modificationDate(date); - return duration - .locale(language.substring(0, 2) === "fr" ? "fr" : "en") - .humanize(); -}; - -export const countAllChildrens = (tree: VariantTree): number => { - if (tree.children.length > 0) { - return tree.children - .map((elm) => 1 + countAllChildrens(elm)) - .reduce((acc, curr) => acc + curr); - } - return 0; -}; - -export const findNodeInTree = ( - studyId: string, - tree: VariantTree -): VariantTree | undefined => { - if (studyId === tree.node.id) return tree; - for (let i = 0; i < tree.children.length; i += 1) { - const elm = findNodeInTree(studyId, tree.children[i]); - if (elm !== undefined) return elm; - } - return undefined; -}; - -export const rgbToHsl = (rgbStr: string): Array => { - const [r, g, b] = rgbStr.slice(4, -1).split(",").map(Number); - const red = r / 255; - const green = g / 255; - const blue = b / 255; - - const cmin = Math.min(red, green, blue); - const cmax = Math.max(red, green, blue); - const delta = cmax - cmin; - let h = 0; - let s = 0; - let l = 0; - - if (delta === 0) { - h = 0; - } else if (cmax === red) { - h = ((green - blue) / delta) % 6; - } else if (cmax === green) { - h = (blue - red) / delta + 2; - } else { - h = (red - green) / delta + 4; - } - - h = Math.round(h * 60); - - if (h < 0) { - h += 360; - } - - l = (cmax + cmin) / 2; - s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1)); - - s = +(s * 100).toFixed(1); - l = +(l * 100).toFixed(1); - - return [h, s, l]; -}; - -export default {}; diff --git a/webapp_v2/src/services/utils/localStorage.ts b/webapp_v2/src/services/utils/localStorage.ts deleted file mode 100644 index a176129a7e..0000000000 --- a/webapp_v2/src/services/utils/localStorage.ts +++ /dev/null @@ -1,24 +0,0 @@ -export const loadState = (path: string, defaultValue?: T): T | undefined => { - try { - const serializedState = localStorage.getItem(path); - if (serializedState === null) { - return defaultValue; - } - return JSON.parse(serializedState) as T; - } catch (err) { - return defaultValue; - } -}; - -export const saveState = (path: string, data: T | undefined): void => { - try { - if (data === undefined) { - localStorage.removeItem(path); - } else { - const serializedState = JSON.stringify(data); - localStorage.setItem(path, serializedState); - } - } catch { - // ignore write errors - } -}; diff --git a/webapp_v2/src/setupTests.ts b/webapp_v2/src/setupTests.ts deleted file mode 100644 index 1dd407a63e..0000000000 --- a/webapp_v2/src/setupTests.ts +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import "@testing-library/jest-dom"; diff --git a/webapp_v2/tsconfig.json b/webapp_v2/tsconfig.json deleted file mode 100644 index d7175ed81e..0000000000 --- a/webapp_v2/tsconfig.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "downlevelIteration": true, - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx" - }, - "include": ["src"] -}