diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index c95884b..9245569 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -14,23 +14,28 @@ on: - 'feature/**' ## Any pull request. Yes the syntax looks weird pull_request: + workflow_dispatch: -jobs: +# Only run one instance of this workflow at a time per branch. +concurrency: + group: ${{ github.ref_name }}-${{ github.workflow }} + cancel-in-progress: true +jobs: test: name: Test the loader on ${{matrix.operating-system}} runs-on: ${{ matrix.operating-system }} strategy: matrix: - operating-system: [ubuntu-latest, windows-latest, macOS-latest] + operating-system: [ubuntu-latest, macOS-latest, windows-latest] steps: - name: Get the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'npm' @@ -48,9 +53,9 @@ jobs: CI: true - name: Archive test artifacts - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: - name: test-results + name: test-results-${{ matrix.operating-system }} path: coverage @@ -73,10 +78,10 @@ jobs: steps: - name: Get the code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'npm' @@ -98,25 +103,20 @@ jobs: { \"pipeline\": { \"source\": { - \"module\": \"./lib/sources/github-resource-source\", + \"module\": \"./lib/sources/filesystem-resource-source\", \"config\": { - \"repoUrl\": \"https://github.com/nciocpl/r4r-content\", - \"branchName\": \"integration-testing\", - \"resourcesPath\": \"/resources\", - \"authentication\": { - \"token\": \"${GITHUB_TOKEN}\" - } + \"resourcesPath\": \"./integration-tests/data/resources\" } }, \"transformers\": [ { \"module\": \"./lib/transformers/netlifymd-resource-transformer\", \"config\": { - \"mappingUrls\": { - \"docs\": \"https://raw.githubusercontent.com/NCIOCPL/r4r-content/integration-testing/data/docs.json\", - \"researchAreas\": \"https://raw.githubusercontent.com/nciocpl/r4r-content/integration-testing/data/researchAreas.json\", - \"researchTypes\": \"https://raw.githubusercontent.com/nciocpl/r4r-content/integration-testing/data/researchTypes.json\", - \"toolTypes\": \"https://raw.githubusercontent.com/nciocpl/r4r-content/integration-testing/data/toolTypes.json\" + \"mappingFiles\": { + \"docs\": \"./integration-tests/data/data/docs.json\", + \"researchAreas\": \"./integration-tests/data/data/researchAreas.json\", + \"researchTypes\": \"./integration-tests/data/data/researchTypes.json\", + \"toolTypes\": \"./integration-tests/data/data/toolTypes.json\" } } } @@ -145,24 +145,10 @@ jobs: ## Variable is picked up by karate-config.js export KARATE_ESHOST="http://localhost:${{ job.services.elasticsearch.ports[9200] }}" cd integration-tests && ./bin/karate ./features - ## Store the exit code off so we can pass this step and - ## capture the test output in the next step, but still - ## fail the entire job - echo "TEST_EXIT_CODE=$?" >> $GITHUB_ENV - exit 0 - name: Upload Integration test results - uses: actions/upload-artifact@v1 + if: always() + uses: actions/upload-artifact@v4 with: name: integration-test-results path: integration-tests/target - - - name: Fail build on bad tests - run: | - ## Check if we had errors on the test step, and if so, fail the job - if [ $TEST_EXIT_CODE -ne 0 ]; then - echo "Tests Failed -- See Run Integration Test step or integration-test-results artifact for more information" - exit $TEST_EXIT_CODE - else - echo "Tests passed" - fi \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index 53d838a..9de2256 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -lts/gallium +lts/iron diff --git a/README.md b/README.md index 23c84ba..0ed4ce2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Resources for Researchers Prototype Importer ## Requirements -* Node 8 +* Node 20 ## Running loader 1. Clone this repo @@ -12,25 +12,21 @@ Resources for Researchers Prototype Importer ## Configuration Information The configuration file is based on the https://github.com/NCIOCPL/loader-pipeline library. For the R4R Loader we have implemented the following pipeline steps: ### Source -* **GithubResourceSource** - This class pulls the content from a Github Repository +* **FileSystemResourceSource** - This class pulls the content from the local filesystem. * Input: N/A - * Output: This returns an array of the *fetched* documents in git. + * Output: This returns an array of the raw documents. * Configuration: - * `repoUrl` : (required) The git repo where the content resides. - * `resourcesPath`: (required) The path within the repo to the resources. - * `branchName` : (default: master) The branch to use. - * `authentication` : (optional) Git authentication configuration. We use token authentication (See https://octokit.github.io/rest.js/v18#authentication). - If no authentication is defined, then the source will use the public API, which has rate-limits based on IP source address. + * `resourcesPath`: (required) The path on the filesystem to the resource files. ### Transformers: * **NetlifyMDResourceTransformer** - Transforms documents in Markdown with YML Front-matter format conforming to the r4r-content schema (https://github.com/NCIOCPL/r4r-content/blob/master/admin/config.yml) the * Input: An array of documents that follow the r4r-content schema * Output: A single record in a format expected by the ElasticResourceLoader * Configuration: * `mappingUrls` - (required) An object that contains the following properties: - * `docs` - (required) The URL to the docs taxonomy - * `researchAreas` - (required) The URL to the research areas taxonomy - * `researchTypes` - (required) The URL to the research types taxonomy - * `toolTypes` - (required) The URL to the tool types taxonomy + * `docs` - (required) The path to the docs taxonomy file. + * `researchAreas` - (required) The path to the research areas taxonomy file. + * `researchTypes` - (required) The path to the research types taxonomy file. + * `toolTypes` - (required) The path to the tool types taxonomy file. ### Loader: * **ElasticResourceLoader** - Loads all records into an Elasticsearch index matching the format of \\_YYYYMMDD\_HHMMSS. Upon successful completion * Input: Documents in a format matching the elasticsearch mapping @@ -54,7 +50,7 @@ The configuration file is based on the https://github.com/NCIOCPL/loader-pipelin 1. Install Coverage Gutters extension 2. Install Jest extension 4. Setup a local configuration - 1. create a local.json file in the /config directory + 1. create a local.json file in the `/config` directory 2. This file is used to override the default.json options and should look something like: ``` { @@ -63,22 +59,28 @@ The configuration file is based on the https://github.com/NCIOCPL/loader-pipelin }, "pipeline": { "source": { - "module": "./lib/sources/github-resource-source", + "module": "./lib/sources/filesystem-resource-source", "config": { - "repoUrl": "https://github.com/nciocpl/r4rcontent", - "resourcesPath": "/resources", - "branchName": "", - "authentication": { - "type": "token", - "token": "" - } + "resourcesPath": "", } }, + "transformers": [ + { + "module": "./lib/transformers/netlifymd-resource-transformer", + "config": { + "mappingFiles": { + "docs": "", + "researchAreas": "", + "researchTypes": "", + "toolTypes": "" + } + } + } + ], "loader": { "module": "lib/loaders/elastic-resource-loader", "config": { "eshosts": [ "" ], - //"eshosts": [ "http://localhost:9200" ], "daysToKeep": 10, "aliasName": "r4r_v1", "mappingPath": "es-mappings/mappings.json", diff --git a/config/default.json b/config/default.json index d03a956..4abf800 100644 --- a/config/default.json +++ b/config/default.json @@ -4,24 +4,20 @@ }, "pipeline": { "source": { - "module": "./lib/sources/github-resource-source", + "module": "./lib/sources/filesystem-resource-source", "config": { - "repoUrl": "https://github.com/nciocpl/r4r-content", - "resourcesPath": "/resources", - //"authentication": { - // "token": "SECRET" - //} + "resourcesPath": "../resources" } }, "transformers": [ { "module": "./lib/transformers/netlifymd-resource-transformer", "config": { - "mappingUrls": { - "docs": "https://raw.githubusercontent.com/nciocpl/r4r-content/master/data/docs.json", - "researchAreas": "https://raw.githubusercontent.com/nciocpl/r4r-content/master/data/researchAreas.json", - "researchTypes": "https://raw.githubusercontent.com/nciocpl/r4r-content/master/data/researchTypes.json", - "toolTypes": "https://raw.githubusercontent.com/nciocpl/r4r-content/master/data/toolTypes.json" + "mappingFiles": { + "docs": "../mapping/docs.json", + "researchAreas": "../mapping/researchAreas.json", + "researchTypes": "../mapping/researchTypes.json", + "toolTypes": "../mapping/toolTypes.json" } } } diff --git a/config/default.test b/config/default.test deleted file mode 100644 index 3585b15..0000000 --- a/config/default.test +++ /dev/null @@ -1,45 +0,0 @@ -{ - "logging": { - "level": "debug" - }, - "pipeline": { - "source": { - "type": "test/test-steps/sources/test-resource-source", - "config": {} - // For the github source: - // ---------------------- - //"type": "lib/sources/github-resource-source", - //"config": { - // "repo": "https://github.com/bryanpizzillo/r4rcontent" - //} - }, - "transformers": [ - { - "type": "test/test-steps/transformers/test-resource-transformer", - "config": {} - // For the markdown with front-matter transformer: - // ---------------------- - //"type": "lib/transformers/netlifymd-resource-transformer", - //"config": { - // "mappingSources": { - // "toolTypes": "", - // "researchAreas": "", - // "researchTypes": "", - // "docs": "" - // } - //} - } - ], - "loader": { - "type": "test/test-steps/loaders/test-resource-loader", - "config": {} - // For the markdown with front-matter transformer: - // ---------------------- - //"type": "lib/loaders/elastic-resource-loader", - //"config": { - // "servers": [ "https://127.0.0.1:9200" ], - // "index": "r4r" - //} - } - } -} \ No newline at end of file diff --git a/integration-tests/bin/load-integration-data.sh b/integration-tests/bin/load-integration-data.sh new file mode 100755 index 0000000..bbe2351 --- /dev/null +++ b/integration-tests/bin/load-integration-data.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +set -e + +## Use the Environment var or the default +if [[ -z "${ELASTIC_SEARCH_HOST}" ]]; then + ELASTIC_HOST="http://localhost:9200" +else + ELASTIC_HOST=${ELASTIC_SEARCH_HOST} +fi + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +## Wait until docker is up. +echo "Waiting for ES Service at ${ELASTIC_HOST} to Start" +until $(curl --output /dev/null --silent --head --fail "${ELASTIC_HOST}"); do + printf '.' + sleep 1 +done +echo "ES Service is up" + +# First wait for ES to start... +response=$(curl --write-out %{http_code} --silent --output /dev/null "${ELASTIC_HOST}") + +until [ "$response" = "200" ]; do + response=$(curl --write-out %{http_code} --silent --output /dev/null "${ELASTIC_HOST}") + >&2 echo "Elastic Search is unavailable - sleeping" + sleep 1 +done + +# next wait for ES status to turn to Green +health_check="curl -fsSL ${ELASTIC_HOST}/_cat/health?h=status" +health=$(eval $health_check) +echo "Waiting for ES status to be ready" +until [[ "$health" = 'green' ]]; do + >&2 echo "Elastic Search is unavailable - sleeping" + sleep 10 + health=$(eval $health_check) +done +echo "ES status is green" + +pushd $(dirname $(dirname $DIR)) +echo "Load the index mapping and data" + + +export NODE_CONFIG=" \ + { \ + \"pipeline\": { \ + \"source\": { \ + \"module\": \"./lib/sources/filesystem-resource-source\", \ + \"config\": { \ + \"resourcesPath\": \"./integration-tests/data/resources\" \ + } \ + }, \ + \"transformers\": [ \ + { \ + \"module\": \"./lib/transformers/netlifymd-resource-transformer\", \ + \"config\": { \ + \"mappingFiles\": { \ + \"docs\": \"./integration-tests/data/data/docs.json\", \ + \"researchAreas\": \"./integration-tests/data/data/researchAreas.json\", \ + \"researchTypes\": \"./integration-tests/data/data/researchTypes.json\", \ + \"toolTypes\": \"./integration-tests/data/data/toolTypes.json\" \ + } \ + } \ + } \ + ], \ + \"loader\": { \ + \"module\": \"./lib/loaders/elastic-resource-loader\", \ + \"config\": { \ + \"eshosts\": [ \"http://localhost:9200\" ], \ + \"daysToKeep\": 10, \ + \"aliasName\": \"r4r_v1\", \ + \"mappingPath\": \"es-mappings/mappings.json\", \ + \"settingsPath\": \"es-mappings/settings.json\" \ + } \ + } \ + } \ + } \ +" +node index.js +popd diff --git a/integration-tests/data/README.md b/integration-tests/data/README.md new file mode 100644 index 0000000..49d3127 --- /dev/null +++ b/integration-tests/data/README.md @@ -0,0 +1 @@ +# r4rcontent diff --git a/integration-tests/data/_prose.yml b/integration-tests/data/_prose.yml new file mode 100644 index 0000000..ac8a974 --- /dev/null +++ b/integration-tests/data/_prose.yml @@ -0,0 +1,17 @@ +prose: + rooturl: '_resources' + #siteurl: 'http://example.org/r4r' + ignore: + - README.md + - _prose.yml + metadata: + _resources: + - name: 'id' + field: + element: number + type: number + - name: 'title' + field: + element: "text" + help: "Enter the title of the resource" + type: "text" diff --git a/integration-tests/data/admin/config.yml b/integration-tests/data/admin/config.yml new file mode 100644 index 0000000..8456ee7 --- /dev/null +++ b/integration-tests/data/admin/config.yml @@ -0,0 +1,154 @@ +# Defines hosting/authentication +backend: +# name: test-repo +# name: git-gateway +# branch: master + name: github + repo: bryanpizzillo/r4rcontent + branch: master + base_url: https://cms-auth.pizzillo.com + +# Instead of just pushing directly to master, +# require some reviews and approvals +#publish_mode: editorial_workflow + +media_folder: "assets/uploads" + +# Define the content model +collections: + - name: "resource" ## The type of object + label: "Resource" ## The label used in the UI + folder: "resources" ## Where the content is stored + format: "yaml-frontmatter" + create: true ## New items can be created. + slug: "{{slug}}" ## The filename to create + fields: # The fields + - {label: "ID", name: "id", widget: "number" } + - {label: "Title", name: "title", widget: "string" } + - {label: "Web Site", name: "website", widget: "string" } + - {label: "Description", name: "description", widget: "markdown", default: ""} + - {label: "Content", name: "body", widget: "markdown"} + - label: "Resource Access" + name: "resourceAccess" + widget: "object" + fields: + - label: "Type" + name: "type" + widget: "select" + options: + - { label: "Open Access", value: "open" } + - { label: "Requires Registration", value: "register" } + - { label: "Cost", value: "cost" } + - { label: "Additional Notes", name: "notes", widget: "string", default: "" } + - label: "Points of Contact" + name: "poc" + widget: "list" + default: [] + fields: + - label: "Name" + name: "name" + widget: "object" + fields: + - {label: "Prefix", name: "prefix", widget: "string"} + - {label: "First Name", name: "firstname", widget: "string"} + - {label: "Middle Name", name: "middlename", widget: "string"} + - {label: "Last Name", name: "lastname", widget: "string"} + - {label: "Suffix", name: "suffix", widget: "string"} + - {label: "Title", name: "title", widget: "string"} + - {label: "Phone", name: "phone", widget: "string"} + - {label: "E-Mail", name: "email", widget: "string"} + - label: "Tool Types" + name: "toolTypes" + widget: "list" + default: [] + fields: + - label: "Tool Type" + name: "toolType" + widget: "select" + options: + - { label: "Lab Tools", value: "lab_tools" } + - { label: "Lab Tools - Reagents", value: "lab_tools/reagents" } + - { label: "Lab Tools - Biospecimen", value: "lab_tools/biospecimen" } + - { label: "Lab Tools - Assays", value: "lab_tools/assays" } + - { label: "Lab Tools - Cell Lines", value: "lab_tools/cell_lines" } + - { label: "Lab Tools - Protocols", value: "lab_tools/protocols" } + - { label: "Lab Tools - Animal Models", value: "lab_tools/animal_models" } + - { label: "Lab Tools - Plant Samples", value: "lab_tools/plant_samples" } + - { label: "Lab Tools - Vectors", value: "lab_tools/vectors" } + - { label: "Lab Tools - Compounds", value: "lab_tools/compounds" } + - { label: "Community Research Tools", value: "community_research_tools" } + - { label: "Community Research Tools - Questionnaire", value: "community_research_tools/questionnaire" } + - { label: "Community Research Tools - Screener", value: "community_research_tools/screener" } + - { label: "Community Research Tools - Survey", value: "community_research_tools/survey" } + - { label: "Clinical Research Tools", value: "clinical_research_tools" } + - { label: "Clinical Research Tools - CTCAE", value: "clinical_research_tools/ctcae" } + - { label: "Clinical Research Tools - Consent Forms", value: "clinical_research_tools/consent_forms" } + - { label: "Clinical Research Tools - Guidelines/Protocols", value: "clinical_research_tools/guidelines_protocols" } + - { label: "Clinical Research Tools - Policies", value: "clinical_research_tools/policies" } + - { label: "Datasets & Databases", value: "datasets_databases" } + - { label: "Datasets & Databases - Clinical Data", value: "datasets_databases/clinical_data" } + - { label: "Datasets & Databases - Imaging", value: "datasets_databases/imaging" } + - { label: "Datasets & Databases - Genomic Datasets", value: "datasets_databases/genomic_datasets" } + - { label: "Datasets & Databases - Epidemiologic Data", value: "datasets_databases/epidemiologic_data" } + - { label: "Datasets & Databases - Patient Registries", value: "datasets_databases/patient_registries" } + - { label: "Datasets & Databases - Biological Networks", value: "datasets_databases/biological_networks" } + - { label: "Analysis Tools", value: "analysis_tools" } + - { label: "Analysis Tools - Genomic Analysis", value: "analysis_tools/genomic_analysis" } + - { label: "Analysis Tools - Data Visualization", value: "analysis_tools/data_visualization" } + - { label: "Analysis Tools - Imaging Analysis", value: "analysis_tools/imaging_analysis" } + - { label: "Analysis Tools - R Software", value: "analysis_tools/r_software" } + - { label: "Analysis Tools - Modeling", value: "analysis_tools/modeling" } + - { label: "Analysis Tools - Natural Language Processing", value: "analysis_tools/natural_language_processing" } + - { label: "Analysis Tools - Statistical Software", value: "analysis_tools/statistical_software" } + - { label: "Networks/Consortiums", value: "networks_consortiums" } + - { label: "Terminology", value: "terminology" } + - { label: "Training Resources", value: "training_resources" } + - label: "Research Areas" + name: "researchAreas" + widget: "list" + default: [] + fields: + - label: "Research Area" + name: "researchArea" + widget: "select" + options: + - { label: "Cancer Treatment", value: "cancer_treatment" } + - { label: "Cancer Biology", value: "cancer_biology" } + - { label: "Cancer Omics", value: "cancer_omics" } + - { label: "Screening & Detection", value: "screening_detection" } + - { label: "Cancer Health Disparities", value: "cancer_health_disparities" } + - { label: "Cancer & Public Health", value: "cancer_public_health" } + - { label: "Cancer Statistics", value: "cancer_statistics" } + - { label: "Cancer Diagnosis", value: "cancer_diagnosis" } + - { label: "Causes of Cancer", value: "causes_of_cancer" } + - { label: "Cancer Survivorship", value: "cancer_survivorship" } + - { label: "Cancer Prevention", value: "cancer_prevention" } + - label: "Research Types" + name: "researchTypes" + widget: "list" + default: [] + fields: + - label: "Research Type" + name: "researchType" + widget: "select" + options: + - { label: "Basic", value: "basic" } + - { label: "Translational", value: "translational" } + - { label: "Clinical Trials", value: "clinical_trials" } + - { label: "Epidemiologic", value: "epidemiologic" } + - { label: "Clinical", value: "clinical" } + - label: "Divisions, Offices and Centers (DOCs)" + name: "docs" + widget: "list" + default: [] + fields: + - label: "DOC" + name: "doc" + widget: "select" + options: + - { "label": "Center for Biomedical Informatics and Informatics Technology (CBIIT)", "value": "cbiit" } + - { "label": "Division of Cancer Treatment and Diagnosis (DCTD)", "value": "dctd" } + - { "label": "Center for Cancer Genomics (CCG)", "value": "ccg" } + - { "label": "Division of Cancer Control and Population Sciences (DCCPS)", "value": "dccps" } + - { "label": "Division of Cancer Biology (DCB)", "value": "dcb" } + - { "label": "Division of Cancer Epidemiology and Genetics (DCEG)", "value": "dceg" } diff --git a/integration-tests/data/admin/index.html b/integration-tests/data/admin/index.html new file mode 100644 index 0000000..c919b0e --- /dev/null +++ b/integration-tests/data/admin/index.html @@ -0,0 +1,16 @@ + + + + + + Content Manager + + + + + + + + + + \ No newline at end of file diff --git a/integration-tests/data/data/docs.json b/integration-tests/data/data/docs.json new file mode 100644 index 0000000..871a602 --- /dev/null +++ b/integration-tests/data/data/docs.json @@ -0,0 +1,9 @@ +[ + { "label": "Center for Biomedical Informatics and Informatics Technology (CBIIT)", "value": "cbiit" }, + { "label": "Division of Cancer Treatment and Diagnosis (DCTD)", "value": "dctd" }, + { "label": "Center for Cancer Genomics (CCG)", "value": "ccg" }, + { "label": "Division of Cancer Control and Population Sciences (DCCPS)", "value": "dccps" }, + { "label": "Division of Cancer Biology (DCB)", "value": "dcb" }, + { "label": "Division of Cancer Epidemiology and Genetics (DCEG)", "value": "dceg" }, + { "label": "Division of Cancer Prevention (DCP)", "value": "dcp" } +] diff --git a/integration-tests/data/data/researchAreas.json b/integration-tests/data/data/researchAreas.json new file mode 100644 index 0000000..8ee73c8 --- /dev/null +++ b/integration-tests/data/data/researchAreas.json @@ -0,0 +1,13 @@ +[ + { "label": "Cancer Treatment", "value": "cancer_treatment" }, + { "label": "Cancer Biology", "value": "cancer_biology" }, + { "label": "Cancer Omics", "value": "cancer_omics" }, + { "label": "Screening & Detection", "value": "screening_detection" }, + { "label": "Cancer Health Disparities", "value": "cancer_health_disparities" }, + { "label": "Cancer & Public Health", "value": "cancer_public_health" }, + { "label": "Cancer Statistics", "value": "cancer_statistics" }, + { "label": "Cancer Diagnosis", "value": "cancer_diagnosis" }, + { "label": "Causes of Cancer", "value": "causes_of_cancer" }, + { "label": "Cancer Survivorship", "value": "cancer_survivorship" }, + { "label": "Cancer Prevention", "value": "cancer_prevention" } +] \ No newline at end of file diff --git a/integration-tests/data/data/researchTypes.json b/integration-tests/data/data/researchTypes.json new file mode 100644 index 0000000..2df3802 --- /dev/null +++ b/integration-tests/data/data/researchTypes.json @@ -0,0 +1,7 @@ +[ + { "label": "Basic", "value": "basic" }, + { "label": "Translational", "value": "translational" }, + { "label": "Clinical Trials", "value": "clinical_trials" }, + { "label": "Epidemiologic", "value": "epidemiologic" }, + { "label": "Clinical", "value": "clinical" } +] \ No newline at end of file diff --git a/integration-tests/data/data/toolTypes.json b/integration-tests/data/data/toolTypes.json new file mode 100644 index 0000000..0d974e5 --- /dev/null +++ b/integration-tests/data/data/toolTypes.json @@ -0,0 +1,39 @@ +[ + { "label": "Lab Tools", "value": "lab_tools" }, + { "label": "Lab Tools - Reagents", "value": "lab_tools/reagents" }, + { "label": "Lab Tools - Biospecimen", "value": "lab_tools/biospecimen" }, + { "label": "Lab Tools - Assays", "value": "lab_tools/assays" }, + { "label": "Lab Tools - Cell Lines", "value": "lab_tools/cell_lines" }, + { "label": "Lab Tools - Protocols", "value": "lab_tools/protocols" }, + { "label": "Lab Tools - Animal Models", "value": "lab_tools/animal_models" }, + { "label": "Lab Tools - Plant Samples", "value": "lab_tools/plant_samples" }, + { "label": "Lab Tools - Vectors", "value": "lab_tools/vectors" }, + { "label": "Lab Tools - Compounds", "value": "lab_tools/compounds" }, + { "label": "Community Research Tools", "value": "community_research_tools" }, + { "label": "Community Research Tools - Questionnaire", "value": "community_research_tools/questionnaire" }, + { "label": "Community Research Tools - Screener", "value": "community_research_tools/screener" }, + { "label": "Community Research Tools - Survey", "value": "community_research_tools/survey" }, + { "label": "Clinical Research Tools", "value": "clinical_research_tools" }, + { "label": "Clinical Research Tools - CTCAE", "value": "clinical_research_tools/ctcae" }, + { "label": "Clinical Research Tools - Consent Forms", "value": "clinical_research_tools/consent_forms" }, + { "label": "Clinical Research Tools - Guidelines/Protocols", "value": "clinical_research_tools/guidelines_protocols" }, + { "label": "Clinical Research Tools - Policies", "value": "clinical_research_tools/policies" }, + { "label": "Datasets & Databases", "value": "datasets_databases" }, + { "label": "Datasets & Databases - Clinical Data", "value": "datasets_databases/clinical_data" }, + { "label": "Datasets & Databases - Imaging", "value": "datasets_databases/imaging" }, + { "label": "Datasets & Databases - Genomic Datasets", "value": "datasets_databases/genomic_datasets" }, + { "label": "Datasets & Databases - Epidemiologic Data", "value": "datasets_databases/epidemiologic_data" }, + { "label": "Datasets & Databases - Patient Registries", "value": "datasets_databases/patient_registries" }, + { "label": "Datasets & Databases - Biological Networks", "value": "datasets_databases/biological_networks" }, + { "label": "Analysis Tools", "value": "analysis_tools" }, + { "label": "Analysis Tools - Genomic Analysis", "value": "analysis_tools/genomic_analysis" }, + { "label": "Analysis Tools - Data Visualization", "value": "analysis_tools/data_visualization" }, + { "label": "Analysis Tools - Imaging Analysis", "value": "analysis_tools/imaging_analysis" }, + { "label": "Analysis Tools - R Software", "value": "analysis_tools/r_software" }, + { "label": "Analysis Tools - Modeling", "value": "analysis_tools/modeling" }, + { "label": "Analysis Tools - Natural Language Processing", "value": "analysis_tools/natural_language_processing" }, + { "label": "Analysis Tools - Statistical Software", "value": "analysis_tools/statistical_software" }, + { "label": "Networks/Consortiums", "value": "networks_consortiums" }, + { "label": "Terminology", "value": "terminology" }, + { "label": "Training Resources", "value": "training_resources" } +] \ No newline at end of file diff --git a/integration-tests/data/index.html b/integration-tests/data/index.html new file mode 100644 index 0000000..9b4c0cc --- /dev/null +++ b/integration-tests/data/index.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/integration-tests/data/resources/resource1.md b/integration-tests/data/resources/resource1.md new file mode 100644 index 0000000..2d701a9 --- /dev/null +++ b/integration-tests/data/resources/resource1.md @@ -0,0 +1,21 @@ +--- +id: 1 +title: Enhancer Linking by Methylation/Expression Relationships (ELMER) +description: > + R tool for analysis of DNA methylation and expression datasets. + +website: http://bioconductor.org/packages/release/bioc/html/ELMER.html +toolTypes: + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: CBIIT +poc: [] +--- +R tool for analysis of DNA methylation and expression datasets. Integrative analysis allows reconstruction of in vivo transcription factor networks altered in cancer along with identification of the underlying gene regulatory sequences. + diff --git a/integration-tests/data/resources/resource100.md b/integration-tests/data/resources/resource100.md new file mode 100644 index 0000000..0458252 --- /dev/null +++ b/integration-tests/data/resources/resource100.md @@ -0,0 +1,21 @@ +--- +id: 100 +title: Bioconductor +description: > + Bioconductor provides tools for the analysis and comprehension of high-throughput genomic data. R/Bioconductor will be enhanced to meet the increasing complexity of multiassay cancer genomics experiments. + +website: https://www.bioconductor.org +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Bioconductor provides tools for the analysis and comprehension of high-throughput genomic data. R/Bioconductor will be enhanced to meet the increasing complexity of multiassay cancer genomics experiments. diff --git a/integration-tests/data/resources/resource101.md b/integration-tests/data/resources/resource101.md new file mode 100644 index 0000000..e09c5ae --- /dev/null +++ b/integration-tests/data/resources/resource101.md @@ -0,0 +1,36 @@ +--- +id: 101 +title: NCI Data Catalog +description: > + The NCI Data Catalog is a listing of data collections produced by intramural researchers or other major NCI initiatives and other widely used data sets. + +website: https://www.cancer.gov/research/resources/data-catalog +toolTypes: + - toolType: datasets_databases/clinical_data + - toolType: datasets_databases/epidemiologic_data + - toolType: datasets_databases/genomic_datasets + - toolType: datasets_databases/imaging +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_survivorship + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical + - researchType: epidemiologic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +poc: + - email: Mervi.Heiskanen@nih.gov + name: + firstname: Mervi + lastname: Heiskanen + phone: 240-276-5175 + title: Program Manager NCI CBIIT +--- +The NCI Data Catalog is a listing of data collections produced by major NCI initiatives and other widely used data sets. Data collections included in the catalog meet the following criteria: Produced by NCI intramural researchers or major NCI initiatives, regularly referenced NCI funded extramural research data, available to all researchers and may be Open or Controlled Access (requiring approval by a Data Access Committee), well-documented and available for download. diff --git a/integration-tests/data/resources/resource102.md b/integration-tests/data/resources/resource102.md new file mode 100644 index 0000000..4d1cca0 --- /dev/null +++ b/integration-tests/data/resources/resource102.md @@ -0,0 +1,21 @@ +--- +id: 102 +title: Allele-Specific Alternative mRNA processing (ASARP) +description: > + A software pipeline for prediction of allele-specific alternative RNA processing events using single RNA-seq data. The current version focuses on prediction of alternative splicing and alternative polyadenylation modulated by genetic variants. + +website: https://www.ibp.ucla.edu/research/xiao/Software_files/ASARP/doc/asarp.html +toolTypes: + - toolType: analysis_tools/modeling +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +A software pipeline for prediction of allele-specific alternative RNA processing events using single RNA-seq data. The current version focuses on prediction of alternative splicing and alternative polyadenylation modulated by genetic variants. diff --git a/integration-tests/data/resources/resource103.md b/integration-tests/data/resources/resource103.md new file mode 100644 index 0000000..5cc508f --- /dev/null +++ b/integration-tests/data/resources/resource103.md @@ -0,0 +1,23 @@ +--- +id: 103 +title: The Laboratory for Individualized Breast Radiodensity Assessment (LIBRA) +description: > + LIBRA is a fully-automatic breast density estimation software solution based on a published algorithm that works on either raw or vendor post-processed digital mammography images. LIBRA has been applied to over 30,000 screening exams and is being increasingly utilized in larger studies. + +website: https://www.med.upenn.edu/sbia/libra.html +toolTypes: + - toolType: datasets_databases/imaging + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: screening_detection +# This does not exist in the options +# - researchArea: Imaging +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +LIBRA is a fully-automatic breast density estimation software solution based on a published algorithm that works on either raw (i.e., äóìFOR PROCESSINGäó) or vendor post-processed (i.e., äóìFOR PRESENTATIONäó) digital mammography images. LIBRA has been applied to over 30,000 screening exams and is being increasingly utilized in larger studies. diff --git a/integration-tests/data/resources/resource104.md b/integration-tests/data/resources/resource104.md new file mode 100644 index 0000000..583a255 --- /dev/null +++ b/integration-tests/data/resources/resource104.md @@ -0,0 +1,21 @@ +--- +id: 104 +title: RADIOMICS.io +description: > + RADIOMICS.io is a open source platform for informatics developments for radiographic phenotyping using automated algorithms, such as engineered features or using deep learning technologies. + +website: https://www.radiomics.io +toolTypes: + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: cancer_diagnosis + - researchArea: screening_detection +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +RADIOMICS.io is a open source platform for informatics developments for radiographic phenotyping using automated algorithms, such as engineered features or using deep learning technologies. With this platform, we aim to establish a reference standard for radiomic analyses, provide a tested and maintained resource, and to grow the community of radiomic developers addressing critical needs in cancer research. diff --git a/integration-tests/data/resources/resource105.md b/integration-tests/data/resources/resource105.md new file mode 100644 index 0000000..807bf79 --- /dev/null +++ b/integration-tests/data/resources/resource105.md @@ -0,0 +1,23 @@ +--- +id: 105 +title: 3D Slicer +description: > + 3D Slicer is an open source software platform for medical image informatics, image processing, and three-dimensional visualization. + +website: https://www.slicer.org +toolTypes: + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment + - researchArea: cancer_diagnosis +researchTypes: + - researchType: translational + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +3D Slicer is an open source software platform for medical image informatics, image processing, and three-dimensional visualization. Slicer brings free, powerful cross-platform processing tools to physicians, researchers, and the general public. diff --git a/integration-tests/data/resources/resource106.md b/integration-tests/data/resources/resource106.md new file mode 100644 index 0000000..07f99d5 --- /dev/null +++ b/integration-tests/data/resources/resource106.md @@ -0,0 +1,27 @@ +--- +id: 106 +title: OncoPPi Portal +description: > + The OncoPPi Portal integrates genomic, pharmacological, clinical, and structural data from external resources with the network of cancer-associated protein-protein interactions (PPI) experimentally determined in cancer cells. + +website: http://oncoppi.emory.edu +toolTypes: + - toolType: datasets_databases/patient_registries +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: andrey.ivanov@emory.edu + name: + firstname: Andrei + lastname: Ivanov +--- +The OncoPPi Portal integrates genomic, pharmacological, clinical, and structural data from external resources with the network of cancer-associated protein-protein interactions (PPI) experimentally determined in cancer cells. This is an interactive web resource that allows users to access, explore, and prioritize cancer-relevant PPIs for target discovery. diff --git a/integration-tests/data/resources/resource107.md b/integration-tests/data/resources/resource107.md new file mode 100644 index 0000000..d223a45 --- /dev/null +++ b/integration-tests/data/resources/resource107.md @@ -0,0 +1,23 @@ +--- +id: 107 +title: Cores Of Recurrent Events (CORE) +description: > + CORE is a statistically supported computational method for finding recurrently targeted regions in massive collections of genomic intervals, such as those arising from DNA copy number analysis of single tumor cells or bulk tumor tissues. + +website: +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +CORE is a statistically supported computational method for finding recurrently targeted regions in massive collections of genomic intervals, such as those arising from DNA copy number analysis of single tumor cells or bulk tumor tissues. + diff --git a/integration-tests/data/resources/resource108.md b/integration-tests/data/resources/resource108.md new file mode 100644 index 0000000..38e9c07 --- /dev/null +++ b/integration-tests/data/resources/resource108.md @@ -0,0 +1,21 @@ +--- +id: 108 +title: dcmqi - DICOM for Quantitative Imaging +description: > + dcmqi is a free, open source library that implements conversion of the data stored in commonly used research formats into the standard DICOM representation. + +website: https://github.com/QIICR/dcmqi +toolTypes: + - toolType: datasets_databases/imaging + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +--- +dcmqi is a free, open source library that implements conversion of the data stored in commonly used research formats into the standard DICOM representation diff --git a/integration-tests/data/resources/resource109.md b/integration-tests/data/resources/resource109.md new file mode 100644 index 0000000..38cf0e0 --- /dev/null +++ b/integration-tests/data/resources/resource109.md @@ -0,0 +1,20 @@ +--- +id: 109 +title: Feature DB +description: > + The backend database to manage segmentation results, computed image features and annotations. FeatureDB drives the database for the QUIP web-platform. + +website: +toolTypes: + - toolType: datasets_databases/imaging +researchAreas: + - researchArea: cancer_diagnosis +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +The backend database to manage segmentation results, computed image features and annotations. FeatureDB drives the database for the QUIP web-platform. diff --git a/integration-tests/data/resources/resource11.md b/integration-tests/data/resources/resource11.md new file mode 100644 index 0000000..434f372 --- /dev/null +++ b/integration-tests/data/resources/resource11.md @@ -0,0 +1,21 @@ +--- +id: 11 +title: Digital Imaging and Communications in Medicine (DICOM) ToolKit (DCMTK) +description: > + DCMTK is a collection of libraries and applications implementing large parts the DICOM standard. + +website: http://dicom.offis.de/dcmtk.php.en +toolTypes: + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_biology +researchTypes: + - researchType : translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +"DCMTK is a collection of libraries and applications implementing large parts the DICOM standard. It includes software for examining, constructing and converting DICOM image files, handling offline media, sending and receiving images over a network connection, as well as demonstrative image storage and worklist servers. DCMTK is is written in a mixture of ANSI C and C++. It comes in complete source code and is made available as ""open source"" software. DCMTK is an open source DICOM toolkit." diff --git a/integration-tests/data/resources/resource110.md b/integration-tests/data/resources/resource110.md new file mode 100644 index 0000000..11aae9b --- /dev/null +++ b/integration-tests/data/resources/resource110.md @@ -0,0 +1,21 @@ +--- +id: 110 +title: Genome-Independent Identification of RNA Editing by Mutual Information (GIREMI) +description: > + Identification of single-nucleotide variants in RNA-seq data. Current version focuses on detection of RNA editing sites without requiring genome sequence data. + +website: +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Identification of single-nucleotide variants in RNA-seq data. Current version focuses on detection of RNA editing sites without requiring genome sequence data. New version is under development to separately identify RNA editing sites and genetic variants using RNA-seq data alone. diff --git a/integration-tests/data/resources/resource111.md b/integration-tests/data/resources/resource111.md new file mode 100644 index 0000000..10442a5 --- /dev/null +++ b/integration-tests/data/resources/resource111.md @@ -0,0 +1,21 @@ +--- +id: 111 +title: LSTM-CRF (Long Short-Term Memory Conditional Random Field) +description: > + LSTM-CRF uses Natural Language Processing methods for detecting Adverse Drug Events, Drugname, Indication and other medically relevant information from Electronic Health Records. It implements Recurrent Neural Networks using several CRF based inference methods. + +website: +toolTypes: + - toolType: clinical_research_tools/ctcae +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +LSTM-CRF uses Natural Language Processing methods for detecting Adverse Drug Events, Drugname, Indication and other medically relevant information from Electronic Health Records. It implements Recurrent Neural Networks using several CRF based inference methods. + diff --git a/integration-tests/data/resources/resource112.md b/integration-tests/data/resources/resource112.md new file mode 100644 index 0000000..364d4bb --- /dev/null +++ b/integration-tests/data/resources/resource112.md @@ -0,0 +1,21 @@ +--- +id: 112 +title: PETCT-CoSeg +description: > + A PET-CT co-segmentation tool for tumor delineation. A free and open-source platform for analyzing and understanding medical image data. + +website: https://github.com/IOWA-PETCT-COSEG/PETCT_Slicer_Extension +toolTypes: + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +A PET-CT co-segmentation tool for tumor delineation. A free and open-source platform for analyzing and understanding medical image data. diff --git a/integration-tests/data/resources/resource113.md b/integration-tests/data/resources/resource113.md new file mode 100644 index 0000000..46cadaf --- /dev/null +++ b/integration-tests/data/resources/resource113.md @@ -0,0 +1,21 @@ +--- +id: 113 +title: PhenStat +description: > + PhenStat is a freely available R package that provides a variety of statistical methods for the identification of phenotypic associations from model organisms developed for the International Mouse Phenotyping Consortium (IMPC at www.mousephenotype.org). + +website: +toolTypes: + - toolType: analysis_tools/r_software + - toolType: lab_tools/animal_models +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +PhenStat is a freely available R package that provides a variety of statistical methods for the identification of phenotypic associations from model organisms developed for the International Mouse Phenotyping Consortium (IMPC at www.mousephenotype.org ). The methods have been developed for high throughput phenotyping pipelines implemented across various experimental designs with an emphasis on managing temporal variation and is being adapted for analysis with PDX mouse strains. diff --git a/integration-tests/data/resources/resource114.md b/integration-tests/data/resources/resource114.md new file mode 100644 index 0000000..47036f1 --- /dev/null +++ b/integration-tests/data/resources/resource114.md @@ -0,0 +1,22 @@ +--- +id: 114 +title: Single Cell Genome Viewer (SCGV) +description: > + SCGV is an interactive graphical tool for single-cell genomics data, with emphasis on single-cell genomics of cancer. It facilitates examination, jointly or individually, of DNA copy number profiles of cells harvested from multiple anatomic locations (sectors). + +website: https://github.com/KrasnitzLab/SCGV +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +"SCGV is an interactive graphical tool for single-cell genomics data, with emphasis on single-cell genomics of cancer. It facilitates examination, jointly or individually, of DNA copy number profiles of cells harvested from multiple anatomic locations (sectors). Graphics user interface for single-cell genomics" diff --git a/integration-tests/data/resources/resource115.md b/integration-tests/data/resources/resource115.md new file mode 100644 index 0000000..91369b1 --- /dev/null +++ b/integration-tests/data/resources/resource115.md @@ -0,0 +1,18 @@ +--- +id: 115 +title: Text Information Extraction System (TIES) +description: > + TIES is a service based software system for acquiring, deidentifying, and processing clinical text reports using natural language processing, and also for querying, sharing and using this data to foster tissue and image based research, within and between institutions. + +website: http://ties.dbmi.pitt.edu +toolTypes: + - toolType: datasets_databases/clinical_data + - toolType: analysis_tools/natural_language_processing +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +--- +TIES is a service based software system for acquiring, deidentifying, and processing clinical text reports using natural language processing, and also for querying, sharing and using this data to foster tissue and image based research, within and between institutions. diff --git a/integration-tests/data/resources/resource116.md b/integration-tests/data/resources/resource116.md new file mode 100644 index 0000000..d9c4bf4 --- /dev/null +++ b/integration-tests/data/resources/resource116.md @@ -0,0 +1,20 @@ +--- +id: 116 +title: NIH MHC (Major Histocompatibility Complex) Tetramer Program +description: > + This core facility provides custom synthesis and distribution of soluble MHC-peptide tetramer reagents that can be used to stain antigen-specific T cells. The facility is supported by a contract from the National Institute of Allergy and Infectious Diseases, with steering committee participation from NCI through DCB. + +website: http://tetramer.yerkes.emory.edu/ +toolTypes: + - toolType: lab_tools/reagents +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: register +docs: + - doc: dcb +pocs: [] +--- +This core facility provides custom synthesis and distribution of soluble MHC-peptide tetramer reagents that can be used to stain antigen-specific T cells. The facility is supported by a contract from the National Institute of Allergy and Infectious Diseases, with steering committee participation from NCI through DCB. diff --git a/integration-tests/data/resources/resource117.md b/integration-tests/data/resources/resource117.md new file mode 100644 index 0000000..32ce253 --- /dev/null +++ b/integration-tests/data/resources/resource117.md @@ -0,0 +1,27 @@ +--- +id: 117 +title: GM/CA X-ray Beamline +description: > + State-of-the-art macromolecular crystallography synchrotron beamline for determining structures of biologically important macromolecules. NCI has a significant amount of beamtime dedicated for the use of its grantees. + +website: http://www.gmca.anl.gov/ +toolTypes: + - toolType: lab_tools + - toolType: analysis_tools +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: register +docs: + - doc: dcb +poc: + - email: Jk339o@nih.gov + name: + firstname: Dr. J. Randy + lastname: Knowlton + title: Program Director, (6W334) + phone: 240-276-6210 +--- +NCI partnered with the National Institute of General Medical Sciences (NIGMS) to fund the construction and management of a state-of-the-art macromolecular crystallography synchrotron beamline for determining structures of biologically important macromolecules. The beamline, GM/CA CAT, is located at the Advanced Photon Source on the grounds of Argonne National Lab just outside of Chicago. NCI has a significant amount of beamtime dedicated for the use of its grantees. Investigators interested in taking experiments to this facility should contact the beamline directly or email Dr. J. Randy Knowlton (Jk339o@nih.gov) for additional information. diff --git a/integration-tests/data/resources/resource118.md b/integration-tests/data/resources/resource118.md new file mode 100644 index 0000000..ec41430 --- /dev/null +++ b/integration-tests/data/resources/resource118.md @@ -0,0 +1,28 @@ +--- +id: 118 +title: Evaluation of Differential DependencY (EDDY) +description: > + EDDY is a statistical test for estimating differential dependencies for a set of genes between two conditions. + +website: https://biocomputing.tgen.org/software/EDDY/ +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg + +poc: + - email: gspeyer@tgen.org + name: + firstname: Gil + lastname: Speyer +--- +EDDY is a statistical test for estimating differential dependencies for a set of genes between two conditions. Dependencies can be represented and assessed graphically for the expression of a gene set within a particular cellular context. EDDY then calculates the divergence between the probability distributions of scored graphs for each condition. Finally, the statistical significance of this divergence is computed. diff --git a/integration-tests/data/resources/resource119.md b/integration-tests/data/resources/resource119.md new file mode 100644 index 0000000..29ba550 --- /dev/null +++ b/integration-tests/data/resources/resource119.md @@ -0,0 +1,27 @@ +--- +id: 119 +title: Evaluation of Differential DependencY-Cancer Therapeutic Response Portal (EDDY-CTRP) +description: > + Analysis of subset of the Cancer Therapeutic Response Portal (CTRP) transcriptome and drug screening data from 810 cancer cell lines. + +website: https://biocomputing.tgen.org/software/EDDY/CTRP/home.html +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: gspeyer@tgen.org + name: + firstname: Gil + lastname: Speyer +--- +Analysis of subset of the Cancer Therapeutic Response Portal (link is external) (CTRP) transcriptome and drug screening data from 810 cancer cell lines (link is external) was performed using the Evaluation of Differential DependencY (link is external) (EDDY) algorithm.This analysis identified pathways enriched for differential dependencies between sensitive and non-sensitive cell-lines to each compound as well as potential novel targets, termed "mediators". diff --git a/integration-tests/data/resources/resource12.md b/integration-tests/data/resources/resource12.md new file mode 100644 index 0000000..a588a85 --- /dev/null +++ b/integration-tests/data/resources/resource12.md @@ -0,0 +1,18 @@ +--- +id: 12 +title: DINC 2.0 (Docking INCrementally) +description: > + DINC 2.0 is a parallelized meta-docking method for the incremental docking of large ligands (currently using AutoDock 4) + +website: http://dinc.kavrakilab.org +toolTypes: + - toolType: analysis_tools/modeling +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +--- +DINC 2.0 is a parallelized meta-docking method for the incremental docking of large ligands (currently using AutoDock 4) + diff --git a/integration-tests/data/resources/resource120.md b/integration-tests/data/resources/resource120.md new file mode 100644 index 0000000..e80e11d --- /dev/null +++ b/integration-tests/data/resources/resource120.md @@ -0,0 +1,29 @@ +--- +id: 120 +title: MethylMix +description: > + MethylMix identifies differentially and transcriptionally predictive methylated genes within a disease. + +website: https://bioconductor.org/packages/3.1/bioc/html/MethylMix.html +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: olivier.gevaert@stanford.edu + name: + firstname: Olivier + lastname: Gevaert +--- +MethylMix identifies differentially and transcriptionally predictive methylated genes within a disease. MethylMix identifies methylation states and compares them with the normal DNA methylation state. MethylMix also introduces a novel statistic, the Differential Methylation value or DM-value, to define methylation-driven subgroups + diff --git a/integration-tests/data/resources/resource121.md b/integration-tests/data/resources/resource121.md new file mode 100644 index 0000000..f08ef8e --- /dev/null +++ b/integration-tests/data/resources/resource121.md @@ -0,0 +1,28 @@ +--- +id: 121 +title: The Cancer Proteome Atlas (TCPA) +description: > + TCPA is an interactive resource that enables researchers to analyze and visualize functional proteomic data (e.g. protein expression and modifications). This tool currently hosts data from 4,495 samples (TCGA samples, additional separate tumor samples, and >500 cell-lines). + +website: https://bioinformatics.mdanderson.org/main/TCPA +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: hliang1@mdanderson.org + name: + firstname: Han + lastname: Liang + - email: tcpa_info@mdanderson.org +--- +TCPA is an interactive resource that enables researchers to analyze and visualize functional proteomic data (e.g. protein expression and modifications). This tool currently hosts data from 4,495 samples (TCGA samples, additional separate tumor samples, and >500 cell-lines). Overview; https://tcpaportal.org/tcpa/ diff --git a/integration-tests/data/resources/resource122.md b/integration-tests/data/resources/resource122.md new file mode 100644 index 0000000..ddf893e --- /dev/null +++ b/integration-tests/data/resources/resource122.md @@ -0,0 +1,25 @@ +--- +id: 122 +title: PiHelper +description: > + PiHelper integrates drug target and antibody target interactions from publicly available resources to facilitate research in systems pharmacology, perturbation biology, and proteomics. + +website: https://bit.ly/pihelper +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: pihelper@cbio.mskcc.org +--- +PiHelper integrates drug target and antibody target interactions from publicly available resources to facilitate research in systems pharmacology, perturbation biology, and proteomics. PiHelper can (1) import drug and antibody target information; (2) search the interactions; (3) visualize data interactively in a network; and (4) export interaction data for use in publications or other analysis tools. + diff --git a/integration-tests/data/resources/resource123.md b/integration-tests/data/resources/resource123.md new file mode 100644 index 0000000..8ccd88c --- /dev/null +++ b/integration-tests/data/resources/resource123.md @@ -0,0 +1,32 @@ +--- +id: 123 +title: Detecting Mechanism of Action based Network Dysregulation (DeMAND) +description: > + The DeMAND algorithm elucidates the mechanisms of action of cellular perturbations (for example, by small molecules or shRNA) using gene expression data generated from control and perturbed cells. The data are then used to identify network dysregulation to determine both the interactions and the genes that are involved in the mechanism of action. + +website: https://califano.c2b2.columbia.edu/demand +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: register +docs: + - doc: ccg +poc: + - email: af2202@cumc.columbia.edu + name: + firstname: Aristidis + lastname: Floratos + - email: ac2248@cumc.columbia.edu + name: + firstname: Andrea + lastname: Califano +--- +The DeMAND algorithm elucidates the mechanisms of action of cellular perturbations (for example, by small molecules or shRNA) using gene expression data generated from control and perturbed cells. The data are then used to identify network dysregulation to determine both the interactions and the genes that are involved in the mechanism of action. diff --git a/integration-tests/data/resources/resource124.md b/integration-tests/data/resources/resource124.md new file mode 100644 index 0000000..75c9caa --- /dev/null +++ b/integration-tests/data/resources/resource124.md @@ -0,0 +1,26 @@ +--- +id: 124 +title: Cancer Genome Anatomy Project (CGAP) +description: > + Online resource of biological tissue characterization data, including gene expression profiles of normal, precancerous, and cancerous cells, and tools for data analysis. CGAP also provides single nucleotide polymorphism analysis of cancer-related genes and the Mitleman database of chromosomal aberrations in cancer. + +website: https://cgap.nci.nih.gov +toolTypes: + - toolType: datasets_databases/genomic_datasets + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: ncicb@pop.nci.nih.gov + title: NCICB Application Support +--- +Online resource of biological tissue characterization data, including gene expression profiles of normal, precancerous, and cancerous cells, and tools for data analysis.CGAP also provides single nucleotide polymorphism analysis of cancer-related genes and the Mitleman database of chromosomal aberrations in cancer. diff --git a/integration-tests/data/resources/resource125.md b/integration-tests/data/resources/resource125.md new file mode 100644 index 0000000..1b303ba --- /dev/null +++ b/integration-tests/data/resources/resource125.md @@ -0,0 +1,29 @@ +--- +id: 125 +title: Cancer Prevalence and Cost of Care Projections +description: > + Tables and graphs, by cancer site and all sites combined, showing cancer prevalence and costs of cancer care projected through 2020. + +website: https://costprojections.cancer.gov/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment + - researchArea: cancer_statistics + - researchArea: cancer_public_health +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: mariotta@mail.nih.gov + name: + firstname: Angela + lastname: Mariotto + title: Chief, Data Analytics Branch, Surveillance Research Program + phone: 240-276-6698 +--- +Tables and graphs, by cancer site and all sites combined, showing cancer prevalence and costs of cancer care projected through 2020. diff --git a/integration-tests/data/resources/resource126.md b/integration-tests/data/resources/resource126.md new file mode 100644 index 0000000..9421efa --- /dev/null +++ b/integration-tests/data/resources/resource126.md @@ -0,0 +1,24 @@ +--- +id: 126 +title: Cancer Target Discovery and Development (CTD^2) Dashboard +description: > + This is an open-access web interface that compiles Network-generated summaries about key cancer biology findings and cancer-relevant results related to genes, proteins, and compounds. Submissions are “ranked” with the validation “Tier” system to indicate strength of evidence. + +website: https://ctd2-dashboard.nci.nih.gov/dashboard/ +toolTypes: + - toolType: datasets_databases +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: ocg@mail.nih.gov +--- +This is an open-access web interface that compiles Network-generated summaries about key cancer biology findings and cancer-relevant results related to genes, proteins, and compounds. Submissions are “ranked” with the validation “Tier” system to indicate strength of evidence. diff --git a/integration-tests/data/resources/resource127.md b/integration-tests/data/resources/resource127.md new file mode 100644 index 0000000..6180daf --- /dev/null +++ b/integration-tests/data/resources/resource127.md @@ -0,0 +1,28 @@ +--- +id: 127 +title: Questionnaire Development Resources +description: > + A collection of questionnaires and questionnaire segments for use in a wide variety of epidemiological studies. + +website: https://dceg.cancer.gov/tools/design/questionnaires +toolTypes: + - toolType: community_research_tools/questionnaire +researchAreas: + - researchArea: cancer_public_health + - researchArea: causes_of_cancer + - researchArea: cancer_prevention +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dceg +poc: + - email: murphygw@mail.nih.gov + name: + firstname: Gwen + lastname: Murphy + phone: 240-276-7199 + title: Ph.D., M.P.H. Staff Scientist, DCEG +--- +A collection of questionnaires and questionnaire segments for use in a wide variety of epidemiological studies. Listings of publications are given where available. Topics covered by the questionnaires include: Alcohol, Tobacco, and Recreational Drug Use Anthropometric Measurements (measurements of the human body) Background Information Breast Cancer Risk Factors Family History of Cancer EMF, Radon, and UVR Exposures Ionizing Radiation Exposures Household Exposures Medical History Non-alcoholic Beverage, Food, and Dietary Supplements Occupational History and Exposures Physical Activity Prescriptions, Hormones, Immunizations Reproductive History Residential History diff --git a/integration-tests/data/resources/resource128.md b/integration-tests/data/resources/resource128.md new file mode 100644 index 0000000..6353d9e --- /dev/null +++ b/integration-tests/data/resources/resource128.md @@ -0,0 +1,29 @@ +--- +id: 128 +title: CERES +description: > + CERES is a method to infer gene essentiality from genome-wide CRISPR-Cas9 screens in cancer cell lines to correct the copy number effect. This approach decreases the false-positive results while taking into account the anti-proliferative copy-number effect. + +website: https://depmap.org/ceres/ +toolTypes: + - toolType: lab_tools/assays + - toolType: analysis_tools/genomic_analysis + - toolType: lab_tools/cell_lines +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg + +poc: + - email: David.Quigley@ucsf.edu + name: + firstname: David + lastname: Quigley +--- +Studies have shown that genome-wide CRISPR-Cas9 inactivation of genes that are amplified need different analytical approaches for interpretation of the results. The Cas9 induces double strand breaks which lead to false-positive results. A computational method, CERES was developed for inferring gene essentiality from genome-wide CRISPR-Cas9 screens in cancer cell lines to correct the copy number effect. This approach decreases the false-positive results while taking into account the anti-proliferative copy-number effect. diff --git a/integration-tests/data/resources/resource129.md b/integration-tests/data/resources/resource129.md new file mode 100644 index 0000000..8791b55 --- /dev/null +++ b/integration-tests/data/resources/resource129.md @@ -0,0 +1,28 @@ +--- +id: 129 +title: The Cancer Genome Atlas Clinical Explorer +description: > + The Cancer Genome Atlas (TCGA) Clinical Explorer is a web and mobile interface for identifying clinical – genomic driver associations. The Clinical Explorer interface provides a platform to query TCGA. + +website: https://genomeportal.stanford.edu/pan-tcga +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: hojoon.lee@stanford.edu + name: + firstname: Hojoon + lastname: Lee + - email: pan-tcga-project@stanford.edu +--- +The Cancer Genome Atlas (TCGA) Clinical Explorer is a web and mobile interface for identifying clinical - genomic driver associations. The Clinical Explorer interface provides a platform to query TCGA data using the following methods: 1) searching for clinically relevant genes, microRNAs, and proteins by name, cancer types, or clinical parameters, 2) searching for genomic and/or proteomic profile changes by clinical parameters, or 3) testing two-hit hypotheses. diff --git a/integration-tests/data/resources/resource13.md b/integration-tests/data/resources/resource13.md new file mode 100644 index 0000000..dc71ff2 --- /dev/null +++ b/integration-tests/data/resources/resource13.md @@ -0,0 +1,20 @@ +--- +id: 13 +title: Galaxy-P multi-omics +description: > + A unified platform for integrative genomic-proteomic-metabolomic data analysis and informatics in cancer research. Galaxy-P is a multi-omics informatics platform. + +website: http://galaxyp.org +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType : basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +A unified platform for integrative genomic-proteomic-metabolomic data analysis and informatics in cancer research. Galaxy-P is a multi-omics informatics platform. The focus of the platform is integrative analysis of genomics, transcriptomics and mass spectrometry-based proteomics and metabolomics data. diff --git a/integration-tests/data/resources/resource130.md b/integration-tests/data/resources/resource130.md new file mode 100644 index 0000000..4bfad9d --- /dev/null +++ b/integration-tests/data/resources/resource130.md @@ -0,0 +1,28 @@ +--- +id: 130 +title: Geographic Information Systems (GIS) and Science for Cancer Control +description: > + This website provides resources for interactive mapping, exploring, and downloading geographically based cancer-related information. + +website: https://gis.cancer.gov/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data + - toolType: analysis_tools +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: tatalovichzp@mail.ni.gov + name: + firstname: Zaria + lastname: Tatalovich + title: Geospatial Scientist, Statistical Research & Applications Branch, Surveillance Research Program + phone: 240-276-6976 +--- +This website provides resources for interactive mapping, exploring, and downloading geographically based cancer-related information. Cancer researchers, cancer control planners, cancer advocacy groups, and public health officials are encouraged to use these resources in their efforts to help reduce the cancer burden in the United States. diff --git a/integration-tests/data/resources/resource131.md b/integration-tests/data/resources/resource131.md new file mode 100644 index 0000000..1d88a5e --- /dev/null +++ b/integration-tests/data/resources/resource131.md @@ -0,0 +1,24 @@ +--- +id: 131 +title: Mining Essentiality Data to Identify Critical Interactions for Cancer Drug Target Discovery and Development (MEDICI) +description: > + MEDICI is a computational method which ranks known protein-protein interactions (PPIs). + +website: https://github.com/cooperlab/MEDICI +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: lee.cooper@emory.edu + name: + firstname: Lee + lastname: Cooper +--- +MEDICI is a computational method which ranks known protein-protein interactions (PPIs). This approach combines Project Achilles shRNA gene silencing data with network models of protein interaction pathways (NCI Pathway Interaction Database) in an analytic framework. The PPIs are ranked based on their cruciality for the survival and proliferation of cancer cells. diff --git a/integration-tests/data/resources/resource132.md b/integration-tests/data/resources/resource132.md new file mode 100644 index 0000000..529feee --- /dev/null +++ b/integration-tests/data/resources/resource132.md @@ -0,0 +1,28 @@ +--- +id: 132 +title: Gene-wise Prior Bayesian Group Factor Analysis (GBGFA) +description: > + GBGFA explicitly models gene-centric dependencies when integrating genomic alterations data of the same gene from different platforms (e.g. copy number variation, gene expression and mutation data) to prioritize genes supported by multiple inputs. + +website: https://github.com/olganikolova/gbgfa +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: olga.nikolova@gmail.com + name: + firstname: Olga + lastname: Nikolova + - email: nikolova@ohsu.edu +--- +GBGFA explicitly models gene-centric dependencies when integrating genomic alterations data of the same gene from different platforms (e.g. copy number variation, gene expression and mutation data) to prioritize genes supported by multiple inputs. The multitask approach of this algorithm provides the ability to leverage similarities in the response profiles of drug groups, that are more likely to correspond to true biological effects. diff --git a/integration-tests/data/resources/resource133.md b/integration-tests/data/resources/resource133.md new file mode 100644 index 0000000..0ca082c --- /dev/null +++ b/integration-tests/data/resources/resource133.md @@ -0,0 +1,24 @@ +--- +id: 133 +title: Mammalian Gene Collection (MGC) +description: > + Open access bank of full-length open reading frame clones for the majority of protein-coding human and mouse genes. Some cow, rat, xenopus, and zebrafish genes are also available. + +website: https://mgc.nci.nih.gov/ +toolTypes: + - toolType: lab_tools/reagents +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: preston.hunter@asu.edu + name: + firstname: Preston + lastname: Hunter +--- +Open access bank of full-length open reading frame clones for the majority of protein-coding human and mouse genes. Some cow, rat, xenopus, and zebrafish genes are also available. diff --git a/integration-tests/data/resources/resource134.md b/integration-tests/data/resources/resource134.md new file mode 100644 index 0000000..c454291 --- /dev/null +++ b/integration-tests/data/resources/resource134.md @@ -0,0 +1,24 @@ +--- +id: 134 +title: Cancer Genome Characterization Initiative (CGCI) Data Matrix +description: > + Data Matrix containing of Whole Genome and transcriptomic sequencing from Burkitt's Lymphoma, HIV+ associated tumors, Medulloblastoma and Non-Hodkin's Lymphoma. + +website: https://ocg.cancer.gov/programs/cgci/data-matrix +toolTypes: + - toolType: datasets_databases/genomic_datasets +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: ocg@mail.nih.gov +--- +Data Matrix containing of Whole Genome and transcriptomic sequencing from Burkitt's Lymphoma, HIV+ associated tumors, Medulloblastoma and Non-Hodkin's Lymphoma. diff --git a/integration-tests/data/resources/resource135.md b/integration-tests/data/resources/resource135.md new file mode 100644 index 0000000..edea1b5 --- /dev/null +++ b/integration-tests/data/resources/resource135.md @@ -0,0 +1,24 @@ +--- +id: 135 +title: Cancer Target Discovery and Development (CTD^2) Data Portal +description: > + Raw and analyzed primary data sets from high-throughput and high content small molecule and genetic screens are available through this data portal. + +website: https://ocg.cancer.gov/programs/ctd2/data-portal +toolTypes: + - toolType: datasets_databases +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: ocg@mail.nih.gov +--- +Raw and analyzed primary data sets from high-throughput and high content small molecule and genetic screens are available through this data portal. All data generated by this initiative are open access. diff --git a/integration-tests/data/resources/resource136.md b/integration-tests/data/resources/resource136.md new file mode 100644 index 0000000..6b38726 --- /dev/null +++ b/integration-tests/data/resources/resource136.md @@ -0,0 +1,31 @@ +--- +id: 136 +title: cDNA Clones with Rare and Recurrent Mutations found in Cancers +description: > + The CTD2 Center at UT- MD Anderson Cancer Center has developed High-Throughput Mutagenesis and Molecular Barcoding (HiTMMoB)1,2 pipeline to construct mutant alleles open reading frame expression clones that are either recurrent or rare in cancers. These barcoded genes can be used for context-specific functional validation, detection of novel biomarkers (pathway activation) and targets (drug sensitivity). + +website: https://ocg.cancer.gov/programs/ctd2/supported-reagents/cdna-clones-rare-and-recurrent-mutations-found-cancers +toolTypes: + - toolType: lab_tools/reagents +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: register + notes: Material Transfer Agreement (MTA) required +docs: + - doc: ccg +poc: + - email: kls1@bcm.edu + name: + firstname: Kenneth L. + lastname: Scott + - email: gmills@mdanderson.org + name: + firstname: Gordon + lastname: Mills +--- +The CTD2 Center at UT- MD Anderson Cancer Center has developed High-Throughput Mutagenesis and Molecular Barcoding (HiTMMoB)1,2 pipeline to construct mutant alleles open reading frame expression clones that are either recurrent or rare in cancers. These barcoded genes can be used for context-specific functional validation, detection of novel biomarkers (pathway activation) and targets (drug sensitivity). diff --git a/integration-tests/data/resources/resource137.md b/integration-tests/data/resources/resource137.md new file mode 100644 index 0000000..aa885aa --- /dev/null +++ b/integration-tests/data/resources/resource137.md @@ -0,0 +1,25 @@ +--- +id: 137 +title: Therapeutically Applicable Research to Generate Effective Treatments (TARGET) Data Matrix +description: > + Genomic profiles (molecular characterization and sequence data) and clinical data for Pediatric Cancers including Acute Lymphoblastic Leukemia, Acute Myeloid Leukemia, Kidney Tumors, Neuroblastomas, and Osteosarcomas. + +website: https://ocg.cancer.gov/programs/target/data-matrix +toolTypes: + - toolType: datasets_databases/genomic_datasets +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: register + notes: NIHEXT required for controlled access data +docs: + - doc: ccg +poc: + - email: ocg@mail.nih.gov +--- +Genomic profiles (molecular characterization and sequence data) and clinical data for Pediatric Cancers including Acute Lymphoblastic Leukemia, Acute Myeloid Leukemia, Kidney Tumors, Neuroblastomas, and Osteosarcomas. diff --git a/integration-tests/data/resources/resource138.md b/integration-tests/data/resources/resource138.md new file mode 100644 index 0000000..6d240eb --- /dev/null +++ b/integration-tests/data/resources/resource138.md @@ -0,0 +1,26 @@ +--- +id: 138 +title: Protein-Protein Interaction Reagents +description: > + A library of genes used to study protein-protein interactions in mammalian cells. These genes are cloned in different mammalian expression vectors. + +website: https://ocg.cancer.gov/resources/all-resources +toolTypes: + - toolType: lab_tools/reagents +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: register +docs: + - doc: ccg +poc: + - email: hfu@emory.edu + name: + firstname: Haian + lastname: Fu +--- +The CTD2 Center at Emory University has a library of genes used to study protein-protein interactions in mammalian cells. These genes are cloned in different mammalian expression vectors. A list of available cancer-associated genes can be accessed below. diff --git a/integration-tests/data/resources/resource139.md b/integration-tests/data/resources/resource139.md new file mode 100644 index 0000000..79f7404 --- /dev/null +++ b/integration-tests/data/resources/resource139.md @@ -0,0 +1,27 @@ +--- +id: 139 +title: Deconvolution Analysis of RNAi Screening data (DecoRNAi) +description: > + DecoRNAi is a computational approach for automated quantitation and annotation of the off-target effects in primary RNAi screening datasets. + +website: https://qbrc.swmed.edu/softwares.php +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: Yang.Xie@UTsouthwestern.edu + name: + firstname: Yang + lastname: Xie +--- +DecoRNAi is a computational approach for automated quantitation and annotation of the off-target effects in primary RNAi screening datasets. diff --git a/integration-tests/data/resources/resource14.md b/integration-tests/data/resources/resource14.md new file mode 100644 index 0000000..ec94a54 --- /dev/null +++ b/integration-tests/data/resources/resource14.md @@ -0,0 +1,23 @@ +--- +id: 14 +title: LesionTracker Web Image Viewer +description: > + Extensible open-source zero-footprint web image viewer for oncology imaging. "LesionTracker" is a web browser based platform for viewing and measuring lesion metrics for tracking oncology trials. + +website: http://lesiontracker.ohif.org +toolTypes: + - toolType: analysis_tools/imaging_analysis + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType : clinical_trials + - researchType : translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Extensible open-source zero-footprint web image viewer for oncology imaging. "LesionTracker" is a web browser based platform for viewing and measuring lesion metrics for tracking oncology trials. diff --git a/integration-tests/data/resources/resource140.md b/integration-tests/data/resources/resource140.md new file mode 100644 index 0000000..b9cdc42 --- /dev/null +++ b/integration-tests/data/resources/resource140.md @@ -0,0 +1,27 @@ +--- +id: 140 +title: Cancer Query Systems (CanQues) +description: > + Applications that provide access to incidence, mortality, survival, and prevalence statistics stored in online databases, as well as the probability of developing or dying from cancer. CanQues does not perform calculations; instead, it displays reports using databases of statistics generated by other software. + +website: https://seer.cancer.gov/canques/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data +researchAreas: + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps + +poc: + - email: mariotta@mail.nih.gov + name: + firstname: Angela + lastname: Mariotto + phone: 240-276-6698 + title: Chief, Data Analytics Branch, Surveillance Research Program +--- +Applications that provide access to incidence, mortality, survival, and prevalence statistics stored in online databases, as well as the probability of developing or dying from cancer. CanQues does not perform calculations; instead, it displays reports using databases of statistics generated by other software. The web-based interface allows users to retrieve the statistics that are relevant to their research. diff --git a/integration-tests/data/resources/resource141.md b/integration-tests/data/resources/resource141.md new file mode 100644 index 0000000..dbe8e0f --- /dev/null +++ b/integration-tests/data/resources/resource141.md @@ -0,0 +1,29 @@ +--- +id: 141 +title: Cancer Statistics Animator +description: > + Allows users to animate cancer trends over time by cancer site and cause of death, race and sex. + +website: https://seer.cancer.gov/canstat/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: scotts2@mail.nih.gov + name: + firstname: Susan + lastname: Scott + title: Public Health Advisor, Surveillance Research Program + phone: 240-276-6951 +--- +Allows users to animate cancer trends over time by cancer site and cause of death, race and sex. Users can select the type of statistic and the variables to be shown in the graph, select the format of the graph by choosing from various graph options, and extract the statistics in a delimited format for further analyses using other software. The CanStat Animator provides access to: SEER Incidence for 1975-2014 for the SEER 9 registries; US Mortality for 1975-2014 for the entire United States; and relative survival for 1975-2013 for the SEER 9 registries. diff --git a/integration-tests/data/resources/resource142.md b/integration-tests/data/resources/resource142.md new file mode 100644 index 0000000..718cd13 --- /dev/null +++ b/integration-tests/data/resources/resource142.md @@ -0,0 +1,29 @@ +--- +id: 142 +title: Fast Stats +description: > + Interactive tool for quick access to key SEER and US cancer statistics for major cancer sites by age,sex, race/ethnicity and data type. Statistics are presented as graphs and tables. + +website: https://seer.cancer.gov/faststats/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: patricia.murphy@nih.gov + name: + firstname: Patricia + lastname: Murphy + title: Program Analyst, Surveillance Research Program + phone: 240-276-6903 +--- +Interactive tool for quick access to key SEER and US cancer statistics for major cancer sites by age, sex, race/ethnicity and data type. Statistics are presented as graphs and tables. diff --git a/integration-tests/data/resources/resource143.md b/integration-tests/data/resources/resource143.md new file mode 100644 index 0000000..4f77f99 --- /dev/null +++ b/integration-tests/data/resources/resource143.md @@ -0,0 +1,28 @@ +--- +id: 143 +title: SEER*Prep Software +description: > + This software converts ASCII text data files to the SEER*Stat database format, allowing users to analyze cancer data (incidence, mortality, expected survival) using SEER*Stat. + +website: https://seer.cancer.gov/seerprep/ +toolTypes: + - toolType: analysis_tools/statistical_software +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: register +docs: + - doc: dccps +poc: + - email: mariotta@mail.nih.gov + name: + firstname: Angela + lastname: Mariotto + title: Chief, Data Analytics Branch, Surveillance Research Program + phone: 240-276-6698 +--- +This software converts ASCII text data files to the SEER*Stat database format, allowing users to analyze cancer data (incidence, mortality, expected survival) using SEER*Stat. SEER*Prep performs two main functions: it converts text data to the specific binary format required by SEER*Stat, and it creates the SEER*Stat data dictionary. SEER*Stat 6.2.3 or later is required to analyze any database generated with this version of SEER*Prep. diff --git a/integration-tests/data/resources/resource144.md b/integration-tests/data/resources/resource144.md new file mode 100644 index 0000000..20dd353 --- /dev/null +++ b/integration-tests/data/resources/resource144.md @@ -0,0 +1,28 @@ +--- +id: 144 +title: CanSurv - Cancer Survival Analysis Software +description: > + Statistical software to analyze population-based survival data, including grouped survival data and parametric (cure) survival models. + +website: https://surveillance.cancer.gov/cansurv/ +toolTypes: + - toolType: analysis_tools/statistical_software +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_survivorship + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: register +docs: + - doc: dccps +poc: + - email: mariotta@mail.nih.gov + name: + firstname: Angela + lastname: Mariotto + title: Chief, Data Analytics Branch, Surveillance Research Program + phone: 240-276-6698 +--- +Statistical software to analyze population-based survival data. For grouped survival data, it can fit both the standard survival models and the mixture cure survival models and provides various graphs for model diagnosis. It can also fit parametric (cure) survival models to individually-listed data. diff --git a/integration-tests/data/resources/resource145.md b/integration-tests/data/resources/resource145.md new file mode 100644 index 0000000..b5fe9cd --- /dev/null +++ b/integration-tests/data/resources/resource145.md @@ -0,0 +1,26 @@ +--- +id: 145 +title: Head*Bang PC Software +description: > + Non-parametric smoothing software for the analysis of spatial (geographic) patterns of cancer. + +website: https://surveillance.cancer.gov/headbang/ +toolTypes: + - toolType: analysis_tools/statistical_software +researchAreas: + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: li.zhu@nih.gov + name: + firstname: Li + lastname: Zhu + title: Mathematical Statistician, Statistical Research and Applications Branch, Surveillance Research Program + phone: 240-276-6851 +--- +Non-parametric smoothing software for the analysis of spatial (geographic) patterns of cancer. The Head-Bang PC Software was developed to reveal underlying geographic patterns in data where the values to be smoothed do not have equal variances. Head-Bang 4.0 (64-bit only) was released in May 2017 and can be used both in Windows and as a console version. diff --git a/integration-tests/data/resources/resource146.md b/integration-tests/data/resources/resource146.md new file mode 100644 index 0000000..dd8ae9e --- /dev/null +++ b/integration-tests/data/resources/resource146.md @@ -0,0 +1,28 @@ +--- +id: 146 +title: ProjPrev-Projected Prevalence Software +description: > + The ProjPrev software takes limited-duration prevalence statistics from SEER*Stat and applies them to a different population. ProjPrev is primarily used to derive US prevalence by projecting SEER prevalence onto US populations. + +website: https://surveillance.cancer.gov/projprev/ +toolTypes: + - toolType: analysis_tools/statistical_software +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: register +docs: + - doc: dccps +poc: + - email: mariotta@mail.nih.gov + name: + firstname: Angela + lastname: Mariotto + title: Chief, Data Analytics Branch, Surveillance Research Program + phone: 240-276-6698 +--- +Limited-duration prevalence represents the proportion of people alive on a certain day who had a diagnosis of the disease within a certain number of years. The ProjPrev software takes limited-duration prevalence statistics from SEER*Stat and applies them to a different population. The population would typically differ in year or geographic area. ProjPrev is primarily used to derive US prevalence by projecting SEER prevalence onto US populations. diff --git a/integration-tests/data/resources/resource147.md b/integration-tests/data/resources/resource147.md new file mode 100644 index 0000000..a151c75 --- /dev/null +++ b/integration-tests/data/resources/resource147.md @@ -0,0 +1,25 @@ +--- +id: 147 +title: MD Anderson Cell Line Project (MCLP) Data Portal +description: > + MCLP is an interactive web platform which enables researchers to explore, analyze, and visualize proteomics (reverse phase protein array data) and related molecular/drug (genomic, transcriptomic, and drug sensitivity) data across hundreds of cancer cell lines. + +website: https://tcpaportal.org/mclp/#/ +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: hliang1@mdanderson.org + name: + firstname: Han + lastname: Liang +--- +MCLP is an interactive web platform which enables researchers to explore, analyze, and visualize proteomics (reverse phase protein array data) and related molecular/drug (genomic, transcriptomic, and drug sensitivity) data across hundreds of cancer cell lines. diff --git a/integration-tests/data/resources/resource148.md b/integration-tests/data/resources/resource148.md new file mode 100644 index 0000000..4bb8492 --- /dev/null +++ b/integration-tests/data/resources/resource148.md @@ -0,0 +1,27 @@ +--- +id: 148 +title: Functional Signature Ontology (FuSiOn) +description: > + FuSiOn is an ontology map built from gene expression data resulting from human kinome perturbation screens using miRNAs, shRNAs, and natural products. FuSiOn can be used to search for genetic or chemical perturbagens to target a gene of interest. + +website: https://whitelab.swmed.edu/fmap/index1.php?url=/fmap/fusion1.php +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: register +docs: + - doc: ccg +poc: + - email: john.macmillan@utsouthwestern.edu + name: + firstname: John + lastname: MacMillan +--- +FuSiOn is an ontology map built from gene expression data resulting from human kinome perturbation screens using miRNAs, shRNAs, and natural products. FuSiOn can be used to search for genetic or chemical perturbagens to target a gene of interest. diff --git a/integration-tests/data/resources/resource149.md b/integration-tests/data/resources/resource149.md new file mode 100644 index 0000000..24aa9b2 --- /dev/null +++ b/integration-tests/data/resources/resource149.md @@ -0,0 +1,31 @@ +--- +id: 149 +title: Master Regulator Inference algorithm (MARINa) +description: > + MARINa uses the transcriptional targets of each transcription factor (TF) as a multiplexed reporter assay to infer the TFs controlling the transition between related cellular states. This is performed by computing the effect that enrichment of each regulon has on the differentially expressed genes between two phenotypic states. + +website: https://wiki.c2b2.columbia.edu/califanolab/index.php/Software/MARINA +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: register +docs: + - doc: ccg +poc: + - email: af2202@cumc.columbia.edu + name: + firstname: Aristidis + lastname: Floratos + - email: ac2248@cumc.columbia.edu + name: + firstname: Andrea + lastname: Califano +--- +MARINa uses the transcriptional targets of each transcription factor (TF) as a multiplexed reporter assay to infer the TFs controlling the transition between related cellular states. This is performed by computing the effect that enrichment of each regulon has on the differentially expressed genes between two phenotypic states. diff --git a/integration-tests/data/resources/resource15.md b/integration-tests/data/resources/resource15.md new file mode 100644 index 0000000..33f2a46 --- /dev/null +++ b/integration-tests/data/resources/resource15.md @@ -0,0 +1,21 @@ +--- +id: 15 +title: WebMeV +description: > + Web MeV (Multiple-experiment Viewer) is a web/cloud-based tool for genomic data analysis. + +website: http://mev.tm4.org/#/welcome +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType : basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Web MeV (Multiple-experiment Viewer) is a web/cloud-based tool for genomic data analysis. Web MeV is being built to meet the challenge of exploring large public genomic data set with intuitive graphical interface providing access to state-of-the-art analytical tools. diff --git a/integration-tests/data/resources/resource150.md b/integration-tests/data/resources/resource150.md new file mode 100644 index 0000000..9fb652e --- /dev/null +++ b/integration-tests/data/resources/resource150.md @@ -0,0 +1,30 @@ +--- +id: 150 +title: Modulator Inference by Network Dynamics (MINDy2)/ Conditional Inference of Network Dynamics (CINDy) +description: > + MINDy2 and CINDy both infer modulatory events in the cell by screening a list of candidate modulator proteins and assessing their effect on the transcriptional control of a transcription factor of interest. + +website: https://wiki.c2b2.columbia.edu/califanolab/index.php/Software/MINDY2 +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: af2202@cumc.columbia.edu + name: + firstname: Aristidis + lastname: Floratos + - email: ac2248@cumc.columbia.edu + name: + firstname: Andrea + lastname: Califano +--- +Modulator Inference by Network Dynamics (MINDy2)/ Conditional Inference of Network Dynamics (CINDy). MINDy2 and CINDy both infer modulatory events in the cell. They do this by screening a list of candidate modulator proteins and assessing their effect on the transcriptional control of a transcription factor of interest. CINDy uses a more sophisticated algorithm: while both try to assess the effects of a modulator over a transcriptional network, CINDy uses the entire expression range of the modulator. diff --git a/integration-tests/data/resources/resource151.md b/integration-tests/data/resources/resource151.md new file mode 100644 index 0000000..abb3a60 --- /dev/null +++ b/integration-tests/data/resources/resource151.md @@ -0,0 +1,31 @@ +--- +id: 151 +title: Virtual Inference of Protein-activity by Enriched Regulon analysis (VIPER) +description: > + VIPER is the extension of Master Regulator Inference algorithm (MARINa) to single samples and to any protein having a regulatory role in the cell, including transcription factors (TFs) and signaling proteins. + +website: https://wiki.c2b2.columbia.edu/califanolab/index.php/Software/VIPER +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: af2202@cumc.columbia.edu + name: + firstname: Aristidis + lastname: Floratos + - email: ac2248@cumc.columbia.edu + name: + firstname: Andrea + lastname: Califano +--- +VIPER is the extension of MARINa to single samples and to any protein having a regulatory role in the cell, including TFs and signaling proteins. It uses the transcripts most associated to each protein as an endogenous, multiplexed reported assay of its activity. diff --git a/integration-tests/data/resources/resource152.md b/integration-tests/data/resources/resource152.md new file mode 100644 index 0000000..3f1e4fe --- /dev/null +++ b/integration-tests/data/resources/resource152.md @@ -0,0 +1,22 @@ +--- +id: 152 +title: Candidate Cancer Allele cDNA Collection +description: > + A collection of plasmids including mutant alleles found in sequencing studies of cancer. It includes somatic variants found in lung adenocarcinoma and across other cancer types. + +website: https://www.addgene.org/kits/boehm-target-accelerator-cancer-collection/ +toolTypes: + - toolType: lab_tools/reagents +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +pocs: [] +--- +CTD2 researchers at the Broad Institute/DFCI have developed a collection of plasmids including mutant alleles found in sequencing studies of cancer. It includes somatic variants found in lung adenocarcinoma and across other cancer types. The clones enable researchers to characterize the function of the cancer variants in a high throughput experiments. In addition, a control collection of clones as part of the "Genetic Pathway Reference Set" provides a resource to generate benchmark perturbation data. These plasmids are collectively called the “Broad Target Accelerator Plasmid Collections”. The design and construction of these plasmids is described in the manuscripts listed below and are available through a distributor. diff --git a/integration-tests/data/resources/resource153.md b/integration-tests/data/resources/resource153.md new file mode 100644 index 0000000..70fb67b --- /dev/null +++ b/integration-tests/data/resources/resource153.md @@ -0,0 +1,26 @@ +--- +id: 153 +title: Project Achilles Portal +description: > + Genes can be queried for essentiality across all cell lines. Data can be easily downloaded and visualized with GENE-E or the data analysis GenePattern module, PARIS. + +website: https://www.broadinstitute.org/achilles +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: register +docs: + - doc: ccg +poc: + - name: + firstname: Paquita + lastname: Vazquez +--- +Project Achilles uses genome-wide pooled shRNA screens to identify and catalog genetic vulnerabilities associated with genetic or epigenetic changes across hundreds of cancer cell lines. In the Project Achilles portal, genes can be queried for essentiality across all cell lines. Data can be easily downloaded and visualized with GENE-E or the data analysis GenePattern module, PARIS. https://www.broadinstitute.org/achilles/contact (link is external)) diff --git a/integration-tests/data/resources/resource154.md b/integration-tests/data/resources/resource154.md new file mode 100644 index 0000000..85e8adf --- /dev/null +++ b/integration-tests/data/resources/resource154.md @@ -0,0 +1,24 @@ +--- +id: 154 +title: Analytic Technique for Assessment of RNAi by Similarity (ATARiS) +description: > + ATARiS is a computational method designed to reduce the background (off-target effects) in data from phenotypic screens performed using multiple RNAi reagents. + +website: https://www.broadinstitute.org/cancer/ataris +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: register +docs: + - doc: ccg +poc: + - email: ataris@broadinstitute.org +--- +ATARiS is a computational method designed to reduce the background (off-target effects) in data from phenotypic screens performed using multiple RNAi reagents. diff --git a/integration-tests/data/resources/resource155.md b/integration-tests/data/resources/resource155.md new file mode 100644 index 0000000..6c42f1b --- /dev/null +++ b/integration-tests/data/resources/resource155.md @@ -0,0 +1,26 @@ +--- +id: 155 +title: Cancer Therapeutics Response Portal (CTRP) +description: > + Users can mine data that are generated by measuring cellular responses to an 'Informer Set' of small-molecule probes and drugs for lineages or mutations enriched among cell lines sensitive to small molecules to identify new potential therapeutic vulnerabilities for different cancer types. + +website: https://www.broadinstitute.org/ctrp/ +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: pclemons@broadinstitute.org + name: + firstname: Paul + lastname: Clemons +--- +CTRP hosts data that are generated by measuring cellular responses to an 'Informer Set' of small-molecule probes and drugs. Users can mine for lineages or mutations enriched among cell lines sensitive to small molecules. By connecting cellular features to small molecule sensitivities, CTRP identifies new potential therapeutic vulnerabilities for different cancer types. diff --git a/integration-tests/data/resources/resource156.md b/integration-tests/data/resources/resource156.md new file mode 100644 index 0000000..690fff4 --- /dev/null +++ b/integration-tests/data/resources/resource156.md @@ -0,0 +1,24 @@ +--- +id: 156 +title: New Grantee Workshop +description: > + DCB offers an annual workshop for new and early-stage investigators to familiarize them with the processes and standards of DCB, NCI and NIH. The workshop is designed for DCB grantees who have received their first independent NIH grant within the last year. + +website: https://www.cancer.gov/about-nci/organization/dcb/researcher-resources#workshop +toolTypes: + - toolType: networks_consortiums +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: register +docs: + - doc: dcb +poc: + - email: mccarths@mail.nih.gov + name: + firstname: Susan + lastname: McCarthy +--- +DCB offers an annual workshop for new and early-stage investigators to familiarize them with the processes and standards of DCB, NCI and NIH. The workshop is designed for DCB grantees who have received their first independent NIH grant within the last year. New grantees are identified by the Division, and attendance is by invitation only. The workshop covers: Structure, roles, and inter-relationships of NIH, NCI, and DCB Branches within DCB NIH peer review process Competitive renewal applications Sources of supplemental funding Grantee responsibilities in managing their awards The workshop includes breakout sessions with DCB Program Directors and a seminar from an NCI-funded senior cancer researcher. diff --git a/integration-tests/data/resources/resource157.md b/integration-tests/data/resources/resource157.md new file mode 100644 index 0000000..4bc3c62 --- /dev/null +++ b/integration-tests/data/resources/resource157.md @@ -0,0 +1,27 @@ +--- +id: 157 +title: Reagents Available to NCI-funded Researchers +description: > + The Tumor Microenvironment Network (TMEN) generated a number of resources that are now available to NCI-funded cancer researchers. These resources include EHS (Engelbreth-Holm-Swarm) sarcoma-derived laminin rich matrix; novel antibodies to detect cancer stem cells and stromal cells; human xenograft tumor bank with characterized stem cell populations; bone marrow-derived cells from donor mice; and RCAS Constructs. + +website: https://www.cancer.gov/about-nci/organization/dcb/researcher-resources#ui-id-6 +toolTypes: + - toolType: lab_tools/biospecimen + - toolType: lab_tools/cell_lines + - toolType: lab_tools/vectors +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: register + notes: Must be an NCI grantee. +docs: + - doc: dcb +poc: + - email: siemonc@mail.nih.gov + name: + firstname: Chris + lastname: Siemon +--- +The Tumor Microenvironment Network (TMEN) generated a number of resources that are now available to NCI-funded cancer researchers. These resources include: -EHS (Engelbreth-Holm-Swarm) sarcoma-derived laminin rich matrix -Novel antibodies to detect cancer stem cells and stromal cells -Human xenograft tumor bank with characterized stem cell populations -Bone Marrow-Derived Cells from donor mice -RCAS Constructs diff --git a/integration-tests/data/resources/resource158.md b/integration-tests/data/resources/resource158.md new file mode 100644 index 0000000..eb010ce --- /dev/null +++ b/integration-tests/data/resources/resource158.md @@ -0,0 +1,23 @@ +--- +id: 158 +title: The ORFeome Collection (OC) +description: > + A collection of validatd, expression-ready, full-length open reading frames for most of the currently defined human genes. + +website: https://www.orfeomecollaboration.org +toolTypes: + - toolType: lab_tools/reagents +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - title: The Biodesign Institute/Arizona State University + phone: 480-965-5697 +--- +A collection of validatd, expression-ready, full-length open reading frames for most of the currently defined human genes. The Biodesign Institute/Arizona State University 1001 S. McAllister Ave, Tempe, AZ 85287-6401 Fax: (480) 965-3051 OR Feome link redirects to the ASU site + diff --git a/integration-tests/data/resources/resource159.md b/integration-tests/data/resources/resource159.md new file mode 100644 index 0000000..a6d3b05 --- /dev/null +++ b/integration-tests/data/resources/resource159.md @@ -0,0 +1,28 @@ +--- +id: 159 +title: Screening Bayesian Evaluation and Analysis Method (ScreenBEAM) +description: > + ScreenBEAM is an algorithm that measures gene-level activity to assess the effect of high-throughput RNA interference (RNAi) or Clustered Regularly Interspaced Short Palindromic Repeats (CRISPR) screens through Bayesian hierarchical modeling. + +website: https://github.com/jyyu/ScreenBEAM +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +poc: + - email: yujiyang@gmail.com + name: + firstname: Jiyang + lastname: Yu +--- +ScreenBEAM is an algorithm that measures gene-level activity to assess the effect of high-throughput RNAi or CRISPR screens through Bayesian hierarchical modeling. For both RNAi and CRISPR, multiple shRNAs or sgRNAs (respectively) are used to target a single gene. ScreenBEAM analyzes gene-level activity for the whole set of shRNAs or sgRNAs targeting the same gene (multi-probe analysis) instead of analyzing the effect of each individual shRNA or sgRNA on a given gene. This reduces false positive and negative rates of high-throughput RNAi or CRISPR screens. This algorithm can handle both microarray and next generation sequencing data as input. diff --git a/integration-tests/data/resources/resource16.md b/integration-tests/data/resources/resource16.md new file mode 100644 index 0000000..50a3f18 --- /dev/null +++ b/integration-tests/data/resources/resource16.md @@ -0,0 +1,21 @@ +--- +id: 16 +title: Mutated Positions in Annotated Structures (MuPIT) +description: > + MuPIT provides 3D visualization of mutation clusters and functional annotation. + +website: http://mupit.icm.jhu.edu/MuPIT_Interactive/ +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +MuPIT provides 3D visualization of mutation clusters and functional annotation. diff --git a/integration-tests/data/resources/resource160.md b/integration-tests/data/resources/resource160.md new file mode 100644 index 0000000..4703779 --- /dev/null +++ b/integration-tests/data/resources/resource160.md @@ -0,0 +1,22 @@ +--- +id: 160 +title: Clustered Regularly Interspaced Short Palindromic Repeats (CRISPRi) plasmids +description: > + The Clustered Regularly Interspaced Short Palindromic Repeats (CRISPR) system offers a general approach for RNA-guided regulation of transcription. Individual plasmids can be ordered. + +website: http://www.addgene.org/crispr/qi-weissman/ +toolTypes: + - toolType: lab_tools/reagents +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: ccg +pocs: [] +--- +The CRISPR (Clustered Regularly Interspaced Short Palindromic Repeats) system offers a general approach for RNA-guided regulation of transcription. Individual plasmids can be ordered via the link. diff --git a/integration-tests/data/resources/resource161.md b/integration-tests/data/resources/resource161.md new file mode 100644 index 0000000..71c89a1 --- /dev/null +++ b/integration-tests/data/resources/resource161.md @@ -0,0 +1,20 @@ +--- +id: 161 +title: SlicerDMRI +description: > + Diffusion magnetic resonance imaging in 3D Slicer open-source software. + +website: http://dmri.slicer.org +toolTypes: +- toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Diffusion magnetic resonance imaging in 3D Slicer open-source software. Load DICOM and nrrd/nhdr diffusion MRI medical image data. Perform tractography, compute scalar maps such as FA, and more. Load and save tractography in new DICOM format. Visualize, edit, and register multimodal data using 3D Slicer tools. Access all functionality through the graphical user interface. Perform command line batch processing. diff --git a/integration-tests/data/resources/resource162.md b/integration-tests/data/resources/resource162.md new file mode 100644 index 0000000..fe2f7da --- /dev/null +++ b/integration-tests/data/resources/resource162.md @@ -0,0 +1,24 @@ +--- +id: 162 +title: XNAT +description: > + XNAT is an open source imaging informatics platform designed to support institutional image repositories, image-based clinical trials, and translational imaging research. + +website: http://www.xnat.org +toolTypes: + - toolType: datasets_databases/imaging + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: cancer_treatment + - researchArea: screening_detection +researchTypes: + - researchType: translational + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +XNAT is an open source imaging informatics platform designed to support institutional image repositories, image-based clinical trials, and translational imaging research. + diff --git a/integration-tests/data/resources/resource163.md b/integration-tests/data/resources/resource163.md new file mode 100644 index 0000000..bd8fbe7 --- /dev/null +++ b/integration-tests/data/resources/resource163.md @@ -0,0 +1,23 @@ +--- +id: 163 +title: Repository of Tumors and Tumor Cell Lines +description: > + This tumor repository serves as a resource for viable, contaminant-free experimental tumor lines, many of which are not obtainable elsewhere. + +website: https://dtp.cancer.gov/organization/btb/docs/DCTDTumorRepositoryCatalog.pdf +toolTypes: + - toolType: lab_tools/biospecimen + - toolType: lab_tools/animal_models + - toolType: lab_tools/cell_lines +researchAreas: + - researchArea: cancer_treatment + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: register + notes: Material Transfer Agreement (MTA) required +docs: + - doc: dctd +--- +This tumor repository serves as a resource for viable, contaminant-free experimental tumor lines, many of which are not obtainable elsewhere diff --git a/integration-tests/data/resources/resource164.md b/integration-tests/data/resources/resource164.md new file mode 100644 index 0000000..2b67bba --- /dev/null +++ b/integration-tests/data/resources/resource164.md @@ -0,0 +1,23 @@ +--- +id: 164 +title: NCI Formulary +description: > + The National Cancer Institute (NCI) agent formulary (NCI Formulary) is a public-private partnership between the NCI and pharmaceutical and biotechnology companies that provides NCI-designated Cancer Center investigators rapid access to agents for cancer clinical trial use of preclinical research. + +website: https://nciformulary.cancer.gov +toolTypes: + - toolType: networks_consortiums + - toolType: lab_tools/compounds +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials + - researchType: basic +resourceAccess: + type: register + notes: Must be an NCI Cancer Center investigator. +docs: + - doc: dctd +pocs: [] +--- +The National Cancer Institute (NCI) agent formulary (NCI Formulary) is a public-private partnership between the NCI and pharmaceutical and biotechnology companies that provides NCI-designated Cancer Center investigators rapid access to agents for cancer clinical trial use of preclinical research. diff --git a/integration-tests/data/resources/resource165.md b/integration-tests/data/resources/resource165.md new file mode 100644 index 0000000..80b4f03 --- /dev/null +++ b/integration-tests/data/resources/resource165.md @@ -0,0 +1,19 @@ +--- +id: 165 +title: NEXT Program +description: > + The mission of the NEXT Program is to advance clinical practice and bring improved therapies to patients with cancer by supporting most promising new drug discovery and development projects. + +website: https://next.cancer.gov/default.htm +toolTypes: + - toolType: networks_consortiums +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: register +docs: + - doc: dctd +--- +The mission of the NEXT Program is to advance clinical practice and bring improved therapies to patients with cancer by supporting most promising new drug discovery and development projects. diff --git a/integration-tests/data/resources/resource166.md b/integration-tests/data/resources/resource166.md new file mode 100644 index 0000000..86d97d8 --- /dev/null +++ b/integration-tests/data/resources/resource166.md @@ -0,0 +1,20 @@ +--- +id: 166 +title: Clinical Interpretation of Variants in Cancer (CIViC) Knowledgebase +description: > + CIViC is a community-driven web resource that enables precision medicine by providing an educational forum for dissemination of knowledge and active discussion of the clinical significance of cancer genome alterations. + +website: https://civic.genome.wustl.edu/home +toolTypes: + - toolType: datasets_databases/genomic_datasets +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +CIViC is an open access, open source, community-driven web resource for Clinical Interpretation of Variants in Cancer. Our goal is to enable precision medicine by providing an educational forum for dissemination of knowledge and active discussion of the clinical significance of cancer genome alterations. diff --git a/integration-tests/data/resources/resource167.md b/integration-tests/data/resources/resource167.md new file mode 100644 index 0000000..80f169d --- /dev/null +++ b/integration-tests/data/resources/resource167.md @@ -0,0 +1,13 @@ +--- +id: 167 +title: Small Cell Lung Cancer Project Data +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. + +website: https://sclccelllines.cancer.gov/sclc/downloads.xhtml +resourceAccess: + type: open +docs: + - doc: dctd +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/integration-tests/data/resources/resource17.md b/integration-tests/data/resources/resource17.md new file mode 100644 index 0000000..918607d --- /dev/null +++ b/integration-tests/data/resources/resource17.md @@ -0,0 +1,16 @@ +--- +id: 17 +title: OmniSearch +description: > + OmniSearch is a semantic search software based upon the OMIT ontology. While OmniSearch is by its nature extensible, its initial focus is in human cancer research. + +website: http://omnisearch.soc.southalabama.edu/ui/ +toolTypes: + - toolType: terminology +resourceAccess: + type: open +docs: + - doc: cbiit +--- +OmniSearch is a semantic search software based upon the OMIT ontology. While OmniSearch is by its nature extensible, its initial focus is in human cancer research. + diff --git a/integration-tests/data/resources/resource18.md b/integration-tests/data/resources/resource18.md new file mode 100644 index 0000000..24e77e2 --- /dev/null +++ b/integration-tests/data/resources/resource18.md @@ -0,0 +1,20 @@ +--- +id: 18 +title: Ontology for MIcroRNA Target (OMIT) +description: > + OMIT is a domain ontology specifically designed for the miRNA field. OmniSearch software was developed to handle the significant challenge of miRNA-related data integration and query. + +website: http://omnisearch.soc.southalabama.edu/w/index.php/Ontology +toolTypes: + - toolType: terminology +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType : translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +OMIT is a domain ontology specifically designed for the miRNA field. OmniSearch software was developed to handle the significant challenge of miRNA-related data integration and query. It will significantly assist biologists, bioinformaticians, and clinical investigators to unravel critical roles performed by different microRNAs in human disease. diff --git a/integration-tests/data/resources/resource19.md b/integration-tests/data/resources/resource19.md new file mode 100644 index 0000000..300a36e --- /dev/null +++ b/integration-tests/data/resources/resource19.md @@ -0,0 +1,22 @@ +--- +id: 19 +title: Sedeen viewer +description: > + Freely downloadable pathology viewer which supports viewing, annotation and analysis of Whole Slide Images. + +website: http://pathiip.org +toolTypes: + - toolType: datasets_databases/imaging + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: cancer_diagnosis + - researchArea: screening_detection +researchTypes: + - researchType : translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Freely downloadable pathology viewer which supports viewing, annotation and analysis of Whole Slide Images. Functionality will be extended as part of the Pathology Image Informatics Platform. diff --git a/integration-tests/data/resources/resource2.md b/integration-tests/data/resources/resource2.md new file mode 100644 index 0000000..ac46a7b --- /dev/null +++ b/integration-tests/data/resources/resource2.md @@ -0,0 +1,20 @@ +--- +id: 2 +title: Next Generation Clustered Heat Maps +description: > + Next-Generation (Clustered) Heat Maps are interactive heat maps that enable the user to zoom and pan across the heatmap, alter its color scheme, generate production quality PDFs, and link out from rows, columns, and individual heatmap entries to related statistics, databases and other information. + +website: http://bioinformatics.mdanderson.org/TCGA/NGCHMPortal +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: CBIIT +pocs: [] +--- +Next-Generation (Clustered) Heat Maps are interactive heat maps that enable the user to zoom and pan across the heatmap, alter its color scheme, generate production quality PDFs, and link out from rows, columns, and individual heatmap entries to related statistics, databases and other information. diff --git a/integration-tests/data/resources/resource20.md b/integration-tests/data/resources/resource20.md new file mode 100644 index 0000000..92fe73b --- /dev/null +++ b/integration-tests/data/resources/resource20.md @@ -0,0 +1,22 @@ +--- +id: 20 +title: Tools for Quantitative Analysis of PET Imaging +description: > + A collection of extensions for 3D Slicer to enable quantitative analysis of PET imaging data: image normalization, segmentation, and extraction of quantitative indices. + +website: http://qin.iibi.uiowa.edu +toolTypes: + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType : clinical_trials + - researchType : translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +A collection of extensions for 3D Slicer to enable quantitative analysis of PET imaging data: image normalization, segmentation, and extraction of quantitative indices. diff --git a/integration-tests/data/resources/resource21.md b/integration-tests/data/resources/resource21.md new file mode 100644 index 0000000..e2d3b8c --- /dev/null +++ b/integration-tests/data/resources/resource21.md @@ -0,0 +1,22 @@ +--- +id: 21 +title: Quantitative Imaging In Pathology (QUIP) +description: > + This site hosts web accessible applications, tools and data designed to support analysis, management, and exploration of whole slide tissue images for cancer research. + +website: http://quip.bmi.stonybrook.edu +toolTypes: + - toolType: datasets_databases/imaging + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: cancer_diagnosis +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +This site hosts web accessible applications, tools and data designed to support analysis, management, and exploration of whole slide tissue images for cancer research. The following tools are included: caMicroscope: A digital pathology data management and visualization plaform that enables interactive viewing of whole slide tissue images and segmentation results. caMicroscope can be also used independently of QUIP. FeatureExplorer: An interactive tool to allow patient-level feature exploration across multiple dimensions. FeatureScape: A visual analytics platform for exploring imaging features generated by analysis of whole slide tissue images. + diff --git a/integration-tests/data/resources/resource22.md b/integration-tests/data/resources/resource22.md new file mode 100644 index 0000000..e594ece --- /dev/null +++ b/integration-tests/data/resources/resource22.md @@ -0,0 +1,21 @@ +--- +id: 22 +title: GenePattern +description: > + GenePattern is a genomic analysis platform that provides access to hundreds of tools for the analysis and visualization of multiple data types. + +website: http://software.broadinstitute.org/cancer/software/genepattern/ +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +GenePattern is a genomic analysis platform that provides access to hundreds of tools for the analysis and visualization of multiple data types. A web-based interface provides easy access to these tools and allows the creation of multi-step analysis pipelines that enable reproducible in silico research. A new GenePattern Notebook environment allows users to combine GenePattern analyses with text, graphics, and code to create complete reproducible research narratives. + diff --git a/integration-tests/data/resources/resource23.md b/integration-tests/data/resources/resource23.md new file mode 100644 index 0000000..a4ef82f --- /dev/null +++ b/integration-tests/data/resources/resource23.md @@ -0,0 +1,20 @@ +--- +id: 23 +title: The Cancer Proteome Atlas +description: > + The Cancer Proteome Atals is a comprehensive bioinformatic resource for assessing, visualzing and analyzing the functional proteomics data of patient tumor and cell line samples. + +website: http://tcpaportal.org +toolTypes: + - toolType: datasets_databases/genomic_datasets + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +--- +The Cancer Proteome Atals is a comprehensive bioinformatic resource for assessing, visualzing and analyzing the functional proteomics data of patient tumor and cell line samples. diff --git a/integration-tests/data/resources/resource24.md b/integration-tests/data/resources/resource24.md new file mode 100644 index 0000000..e2e2879 --- /dev/null +++ b/integration-tests/data/resources/resource24.md @@ -0,0 +1,21 @@ +--- +id: 24 +title: The Cancer Imaging Archive (TCIA) +description: > + TCIA is NCI's repository for publicly shared cancer imaging data. + +website: http://www.cancerimagingarchive.net +toolTypes: + - toolType: datasets_databases/imaging + - toolType: datasets_databases/imaging +researchAreas: + - researchArea: cancer_diagnosis +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +TCIA is NCI's repository for publicly shared cancer imaging data. TCIA collections include radiology and pathothogy images, clinical and clinical trial data, image derived annotations and quantitative features and a growing collection of related 'omics" data both from clinical and pre-clinical studies. diff --git a/integration-tests/data/resources/resource25.md b/integration-tests/data/resources/resource25.md new file mode 100644 index 0000000..a5b2385 --- /dev/null +++ b/integration-tests/data/resources/resource25.md @@ -0,0 +1,21 @@ +--- +id: 25 +title: cBioPortal for Cancer Genonics +description: > + TCIA is NCI's repository for publicly shared cancer imaging data. + +website: http://www.cbioportal.org +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +The cBioPortal for cancer genomics provides visualization, analysis and download of large-scale cancer genomics data sets. diff --git a/integration-tests/data/resources/resource26.md b/integration-tests/data/resources/resource26.md new file mode 100644 index 0000000..3f09094 --- /dev/null +++ b/integration-tests/data/resources/resource26.md @@ -0,0 +1,22 @@ +--- +id: 26 +title: Chernobyl Tissue Bank (CTB) +description: > + The Chernobyl Tissue Bank maintains a research resource that supports studies on the biology of thyroid cancer, the major health consequence of the Chernobyl accident. + +website: http://www.chernobyltissuebank.com/ +toolTypes: + - toolType: lab_tools/biospecimen +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic + - researchType: clinical + - researchType: translational +resourceAccess: + type: register +docs: + - doc: dcb +pocs: [] +--- +DCB supports and manages biospecimen resources that collect, store, process, and disseminate human biological specimens (biospecimens) and associated data set for research on human cancer biology. The Chernobyl Tissue Bank is an international collaborative project that is supported by NCI and another global partner, with active participation from Russia and Ukraine, two countries heavily affected by the 1986 Chernobyl accident. The objective of the CTB is to establish and maintain a research resource that supports studies on the biology of thyroid cancer, the major health consequence of the Chernobyl accident. For more information on this Tissue Bank, please visit the Chernobyl Tissue Bank website. diff --git a/integration-tests/data/resources/resource27.md b/integration-tests/data/resources/resource27.md new file mode 100644 index 0000000..8f18e6b --- /dev/null +++ b/integration-tests/data/resources/resource27.md @@ -0,0 +1,23 @@ +--- +id: 27 +title: Cancer-Related Analysis of Variants Toolkit (CRAVAT) +description: > + CRAVAT is an easy to use web-based tool for analysis of cancer variants (missense, nonsense, in-frame indel, frameshift indel, splice site). + +website: http://www.cravat.us/CRAVAT/ +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +CRAVAT is an easy to use web-based tool for analysis of cancer variants (missense, nonsense, in-frame indel, frameshift indel, splice site). CRAVAT provides scores and a variety of annotations that assist in identification of important variants. Results are provided in an interactive, highly graphical webpage and include annotated 3D structure visualization. ŒæCRAVAT is also available for local or cloud-based installation as a Docker container. + diff --git a/integration-tests/data/resources/resource28.md b/integration-tests/data/resources/resource28.md new file mode 100644 index 0000000..3ac24cf --- /dev/null +++ b/integration-tests/data/resources/resource28.md @@ -0,0 +1,21 @@ +--- +id: 28 +title: Tumor Heterogenity Research Interactive Visualization Environment (THRIVE) +description: > + THRIVE is a platform for quantitative evaluation of intratumoral spatial heterogeneity in multiplexed immunofluorescence images. + +website: http://www.csb.pitt.edu/ith/ +toolTypes: + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: cancer_diagnosis + - researchArea: screening_detection +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +A platform for quantitative evaluation of intratumoral spatial heterogeneity in multiplexed immunofluorescence images, via characterization of the spatial interactions between different cellular phenotypes and non-cellular constituents in the tumor microenvironment. diff --git a/integration-tests/data/resources/resource29.md b/integration-tests/data/resources/resource29.md new file mode 100644 index 0000000..e7967d0 --- /dev/null +++ b/integration-tests/data/resources/resource29.md @@ -0,0 +1,23 @@ +--- +id: 29 +title: Integrative Genomics Viewer (IGV) +description: > + IGV is a high-performance visualization tool for interactive exploration of large, integrated genomic datasets that supports a wide variety of data types. + +website: http://www.igv.org +toolTypes: + - toolType: analysis_tools/data_visualization + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +The Integrative Genomics Viewer (IGV) is a high-performance visualization tool for interactive exploration of large, integrated genomic datasets. It supports a wide variety of data types, including array-based and next-generation sequence data, and genomic annotations. + diff --git a/integration-tests/data/resources/resource3.md b/integration-tests/data/resources/resource3.md new file mode 100644 index 0000000..f8b967f --- /dev/null +++ b/integration-tests/data/resources/resource3.md @@ -0,0 +1,22 @@ +--- +id: 3 +title: The BioMedical Evidence Graph (BMEG) +description: > + The BMEG is a cancer data integration platform that utilizes methods collected from DREAM challenges and applied to large datasets, such as the TCGA, and makes them available for analysis using a high performance graph database. + +website: http://bmeg.io +toolTypes: + - toolType: datasets_databases/biological_networks + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: CBIIT +pocs: [] +--- +The BMEG is a cancer data integration platform that utilizes methods collected from DREAM challenges and applied to large datasets, such as the TCGA, and makes them available for analysis using a high performance graph database. diff --git a/integration-tests/data/resources/resource30.md b/integration-tests/data/resources/resource30.md new file mode 100644 index 0000000..fa85394 --- /dev/null +++ b/integration-tests/data/resources/resource30.md @@ -0,0 +1,21 @@ +--- +id: 30 +title: NDEx - The Network Data Exchange +description: > + NDEx is an online commons where scientists can upload, share, and publicly distribute biological networks and pathway models. + +website: http://www.ndexbio.org/#/ +toolTypes: + - toolType: datasets_databases/biological_networks + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +NDEx is an online commons where scientists can upload, share, and publicly distribute biological networks and pathway models. The NDEx Project maintains a web-accessible public server, a documentation website, provides seamless connectivity to Cytoscape as well as programmatic access using a variety of languages including Python and Java. diff --git a/integration-tests/data/resources/resource31.md b/integration-tests/data/resources/resource31.md new file mode 100644 index 0000000..a62dbea --- /dev/null +++ b/integration-tests/data/resources/resource31.md @@ -0,0 +1,21 @@ +--- +id: 31 +title: Patient-Derived Xenograpt (PDX) Finder +description: > + PDX Finder, currently in the prototyping phase, is integrative, archiving and dessiminating information about PDX models and their associated data. + +website: http://www.pdxfinder.org +toolTypes: + - toolType: lab_tools/animal_models + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +PDX Finder, currently in the prototyping phase, is integrative, archiving and dessiminating information about PDX models and their associated data. diff --git a/integration-tests/data/resources/resource32.md b/integration-tests/data/resources/resource32.md new file mode 100644 index 0000000..29e28d8 --- /dev/null +++ b/integration-tests/data/resources/resource32.md @@ -0,0 +1,23 @@ +--- +id: 32 +title: The International Registry of Werner Syndrome +description: > + The International Registry of Werner Syndrome is the primary repository of samples and data from patients with Werner Syndrome (WS). The registry ascertains and genotypes new pedigree cases from around the world. + +website: http://www.wernersyndrome.org/registry/registry.html +toolTypes: + - toolType: lab_tools/biospecimen + - toolType: datasets_databases/patient_registries + - toolType: lab_tools/cell_lines +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic + - researchType: clinical +resourceAccess: + type: register +docs: + - doc: dcb +pocs: [] +--- +The International Registry of Werner Syndrome is the primary repository of samples and data from patients with Werner Syndrome (WS), and was established in 1988 as part of an objective to positionally clone the WS gene. The registry ascertains and genotypes new pedigree cases from around the world, using lymphoblastoids and/or fibroblasts from human research participants, and provides genetic confirmation of classical WS. It also establishes and cryopreserves cell lines and other material from these pedigrees (both affected patients and their clinically unaffected siblings), including Epstein-Barr transformed peripheral blood B lymphocytes, primary skin fibroblasts, immortalized skin fibroblasts, WRN cDNA constructs, and others. All these materials are available for research. diff --git a/integration-tests/data/resources/resource33.md b/integration-tests/data/resources/resource33.md new file mode 100644 index 0000000..9a95c60 --- /dev/null +++ b/integration-tests/data/resources/resource33.md @@ -0,0 +1,21 @@ +--- +id: 33 +title: UCSC Xena +description: > + UCSC Xena securely analyzes and visualizes your private functional genomics data set in the context of public and shared genomic/phenotypic data sets such as TCGA, ICGC, TARGET, GTEx, and GA4GH (TOIL). + +website: http://xena.ucsc.edu +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +UCSC Xena securely analyzes and visualizes your private functional genomics data set in the context of public and shared genomic/phenotypic data sets such as TCGA, ICGC, TARGET, GTEx, and GA4GH (TOIL). diff --git a/integration-tests/data/resources/resource34.md b/integration-tests/data/resources/resource34.md new file mode 100644 index 0000000..3953a4c --- /dev/null +++ b/integration-tests/data/resources/resource34.md @@ -0,0 +1,20 @@ +--- +id: 34 +title: NCI Best Practices for Biospecimen Resources Handbook, 2016 +description: > + This publication outlines the operational, technical, ethical, legal and policy best practices for NCI-supported biospecimen resources. + +website: https://biospecimens.cancer.gov/bestpractices/2016-NCIBestPractices.pdf +toolTypes: + - toolType: lab_tools/protocols +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: clinical_trials + - researchType: basic +resourceAccess: + type: open +docs: + - doc: dctd +--- +A publication outlining the operational, technical, ethical, legal and policy best practices for NCI-supported biospecimen resources. CI Best Practices incorporate key principles that define state-of-the-science biospecimen resource practices, promote biospecimen and data quality, and support adherence to ethical and legal requirements. This document is based on current, published information and will be revised periodically as new information is generated from ongoing research projects. While adoption of the NCI Best Practices is voluntary, the NCI believes that these principles optimize biospecimens for cancer research. This revision was published in March 2016. diff --git a/integration-tests/data/resources/resource35.md b/integration-tests/data/resources/resource35.md new file mode 100644 index 0000000..2e0a047 --- /dev/null +++ b/integration-tests/data/resources/resource35.md @@ -0,0 +1,19 @@ +--- +id: 35 +title: Protocol - Snap-Freezing of Post-Surgical Tissue Biospecimens +description: > + Evidence-based guidance for the proper snap-freezing of human tissue biospecimens. + +website: https://biospecimens.cancer.gov/global/pdfs/NCI_BEBP_Snap-freezing_of_Post-surgical_Tissue_Biospecimens.pdf +toolTypes: + - toolType: lab_tools/protocols +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +Evidence-based guidance for the proper snap-freezing of human tissue biospecimens. This guidance is intended to support the development and execution of evidence-based Standard Operating Procedures (SOPs) for human biospecimen collection, processing, and storage operations. Applicable to all human tissues that are to be preserved by snap-freezing. Biospecimens preserved under these procedural guidelines are suitable for downstream analysis of DNA, RNA, protein, and morphology endpoints. Additional analytical endpoints, including but not limited to cell viability, cell sorting, drug sensitivity testing, or use as donor specimens for xenografts or primary tissue culture, do not fall within the scope of this document. diff --git a/integration-tests/data/resources/resource36.md b/integration-tests/data/resources/resource36.md new file mode 100644 index 0000000..8c7852a --- /dev/null +++ b/integration-tests/data/resources/resource36.md @@ -0,0 +1,20 @@ +--- +id: 36 +title: Standard Operating Procedure (SOP) Collection for biobanking and the Genome Tissue Expression (GTEx) Project +description: > + Standard Operating Procedures (SOPs) for various biobanking practices to govern operations in ethical and regulatory procedures; biospecimen collecting and tracking; data collection; production of collection and shipping kits and checklists; and pathology review. + +website: https://biospecimens.cancer.gov/resources/sops/library.asp +toolTypes: + - toolType: lab_tools/protocols +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +Standard Operating Procedures (SOPs) for various biobanking practices used in initiatives such as the Cancer Human Biobank (caHUB). The caHUB has collected high quality biospecimens and associated data to enable genomic research in the Genotype-Tissue Expression (GTEx) project, a National Institutes of Health (NIH) Common Fund initiative. The success of GTEx depends on the ability to successfully procure and store high quality biospecimens for analysis. Successful collection of normal human biospecimens from rapid autopsies and organ donors requires complex operations and a stringent QA/QC process. For this reason, caHUB has created a large number of SOPs to govern operations in ethical and regulatory procedures; biospecimen collecting and tracking; data collection; production of collection and shipping kits and checklists; and pathology review. diff --git a/integration-tests/data/resources/resource37.md b/integration-tests/data/resources/resource37.md new file mode 100644 index 0000000..3f7037b --- /dev/null +++ b/integration-tests/data/resources/resource37.md @@ -0,0 +1,21 @@ +--- +id: 37 +title: Sample Size Planning for an Integrated Phase II/III Study +description: > + Calculates simulated or an approximate expected time, expected sample size and final power for: integrated phase II/III design, a single randomized study with overall survival as the endpoint, a single study with overall survival as the endpoint with a futility analysis based on survival, or separate randomized phase II followed by phase III. + +website: https://brb.nci.nih.gov/brb/samplesize/ip23study1.html +toolTypes: + - toolType: analysis_tools/modeling + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +This program calculates either simulated or an approximate expected time, expected sample size and final power for: integrated phase II/III design, a single randomized study with overall survival as the endpoint, a single study with overall survival as the endpoint with a futility analysis based on survival, separate randomized phase II followed by phase III diff --git a/integration-tests/data/resources/resource38.md b/integration-tests/data/resources/resource38.md new file mode 100644 index 0000000..32ef747 --- /dev/null +++ b/integration-tests/data/resources/resource38.md @@ -0,0 +1,21 @@ +--- +id: 38 +title: Sample Size Planning for Developing Classifiers Using High Dimensional Data +description: > + This progam provides estimates of the sample size required for a training set in order to ensure the resulting binary classifier has an expected accuracy within a tolerance of the optimal accuracy. The program only considers sample sizes below 300. + +website: https://brb.nci.nih.gov/brb/samplesize/samplesize4GE.html +toolTypes: + - toolType: analysis_tools/modeling + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +This progam provides estimates of the sample size required for a training set in order to ensure the resulting binary classifier has an expected accuracy within a tolerance of the optimal accuracy. The program only considers sample sizes below 300. diff --git a/integration-tests/data/resources/resource39.md b/integration-tests/data/resources/resource39.md new file mode 100644 index 0000000..4a416e1 --- /dev/null +++ b/integration-tests/data/resources/resource39.md @@ -0,0 +1,21 @@ +--- +id: 39 +title: Biomarker Stratified Randomized Design (Binary) +description: > + Stratified Design with Prospective Analysis Plan and Binary Endpoint. Randomized trial comparing new treatment (T) to control (C) includes both classifier positive and classifier negative patients. Presumes availability of binary classifier for biomarker predictive of benefit for new treatment. + +website: https://brb.nci.nih.gov/brb/samplesize/sdpap_binary.html +toolTypes: + - toolType: analysis_tools/modeling + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +Stratified Design with Prospective Analysis Plan and Binary Endpoint. Randomized trial comparing new treatment (T) to control (C) includes both classifier positive and classifier negative patients. Presumes availability of binary classifier for biomarker predictive of benefit for new treatment. diff --git a/integration-tests/data/resources/resource4.md b/integration-tests/data/resources/resource4.md new file mode 100644 index 0000000..6c4d8c8 --- /dev/null +++ b/integration-tests/data/resources/resource4.md @@ -0,0 +1,31 @@ +--- +id: 4 +title: Driver-gene Inference by Genetical-Genomics and Information Theory (DIGGIT) +description: > + The DIGGIT package integrates patient-matched genomic mutation and gene expression data with corresponding gene regulatory networks to identify candidate driver mutations that are upstream of and directly perturb master regulators. + +website: 'http://califano.c2b2.columbia.edu/software' +resourceAccess: + type: open +poc: + - email: af2202@cumc.columbia.edu + name: + firstname: Aristidis + lastname: Floratos + - email: ac2248@cumc.columbia.edu + name: + firstname: Andrea + lastname: Califano +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: translational +docs: + - doc: ccg +--- +The DIGGIT package integrates patient-matched genomic mutation and gene expression data with corresponding gene regulatory networks to identify candidate driver mutations that are upstream of and directly perturb master regulators. Master regulators are transcription factors that control the majority of genes differentially expressed between two molecular phenotypes. diff --git a/integration-tests/data/resources/resource40.md b/integration-tests/data/resources/resource40.md new file mode 100644 index 0000000..cc7f2fc --- /dev/null +++ b/integration-tests/data/resources/resource40.md @@ -0,0 +1,21 @@ +--- +id: 40 +title: Biomarker Stratified Randomized Design (Time-to-Event) +description: > + Stratified Design with Prospective Analysis Plan and Time-to-Event Endpoint. Randomized trial comparing new treatment (T) to control (C) includes both classifier positive and classifier negative patients. Presumes availability of binary classifier predictive of benefit for new treatment. + +website: https://brb.nci.nih.gov/brb/samplesize/sdpap_survival.html +toolTypes: + - toolType: analysis_tools/modeling + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +Stratified Design with Prospective Analysis Plan and Time-to-Event Endpoint. Randomized trial comparing new treatment (T) to control (C) includes both classifier positive and classifier negative patients. Presumes availability of binary classifier predictive of benefit for new treatment. diff --git a/integration-tests/data/resources/resource41.md b/integration-tests/data/resources/resource41.md new file mode 100644 index 0000000..40921cb --- /dev/null +++ b/integration-tests/data/resources/resource41.md @@ -0,0 +1,20 @@ +--- +id: 41 +title: Biomarker Targeted Randomized Design +description: > + Targeted design randomizes only marker positive patients to treatment arm. Untargeted design does not measure marker and randomizes all who otherwise are eligible. + +website: https://brb.nci.nih.gov/brb/samplesize/td.html +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +Targeted design randomizes only marker positive patients to treatment arm. Untargeted design does not measure marker and randomizes all who otherwise are eligible. diff --git a/integration-tests/data/resources/resource42.md b/integration-tests/data/resources/resource42.md new file mode 100644 index 0000000..909c8b8 --- /dev/null +++ b/integration-tests/data/resources/resource42.md @@ -0,0 +1,24 @@ +--- +id: 42 +title: BRB-Array Tools +description: > + BRB-array Tools is an integrated package for the visualization and statistical analysis of Microarray gene expression, copy number, methylation, and RNA -Seq data. + +website: https://brb.nci.nih.gov/BRB-ArrayTools/ +toolTypes: + - toolType: analysis_tools/r_software + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +BRB-array Tools is an integrated package for the visualization and statistical analysis of Microarray gene expression, copy number, methylation, and RNA -Seq data. diff --git a/integration-tests/data/resources/resource43.md b/integration-tests/data/resources/resource43.md new file mode 100644 index 0000000..844a154 --- /dev/null +++ b/integration-tests/data/resources/resource43.md @@ -0,0 +1,23 @@ +--- +id: 43 +title: OpenGeneMed +description: > + OpenGeneMed is an informatics system to support clinical trial research and streamlines clinical trial management. It can also be used by clinicians, lab personnel, statisticians and other researchers as a communication hub. + +website: https://brb.nci.nih.gov/OpenGeneMed/ +toolTypes: + - toolType: datasets_databases/patient_registries + - toolType: datasets_databases/genomic_datasets +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +OpenGeneMed is an informatics system to support clinical trial research. OpenGeneMed streamlines clinical trial management and it can be used by clinicians, lab personnel, statisticians and other researchers as a communication hub. It automates the annotation of the genomic variants identified by sequencing, classifies the actionable mutations according to customizable rules, and facilitates quality control by the molecular characterization lab in the review of variants. OpenGeneMed collects baseline information of patients to determine eligibility for the panel of treatment regimens available. The system generates patient reports containing detected genomic alterations along with summarized information that can be used for treatment assignment by a supervising treatment review team. diff --git a/integration-tests/data/resources/resource44.md b/integration-tests/data/resources/resource44.md new file mode 100644 index 0000000..829a891 --- /dev/null +++ b/integration-tests/data/resources/resource44.md @@ -0,0 +1,21 @@ +--- +id: 44 +title: Microsoft Excel Dose Level Assignment program for Accelerated Titration Designs +descripton: > + This program provides assistance in dose level assignment for Accelerated Titration Design for Phase I Clinical Trials. + +website: https://brb.nci.nih.gov/programdownload/ExcelProgram.htm +toolTypes: + - toolType: analysis_tools/modeling + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +This program provides assistance in dose level assignment for Accelerated Titration Design for Phase I Clinical Trials diff --git a/integration-tests/data/resources/resource45.md b/integration-tests/data/resources/resource45.md new file mode 100644 index 0000000..dc19bac --- /dev/null +++ b/integration-tests/data/resources/resource45.md @@ -0,0 +1,21 @@ +--- +id: 45 +title: S-PLUS Program for the Analysis of Accelerated Titration Design +description: > + New "accelerated titration designs" for phase I clinical trials, along with a dose-toxicity model which can be used to evaluate the toxicity data. The dose-toxicity model can be used to assign the phase II starting dose, for the use of investigators conducting phase I studies. + +website: https://brb.nci.nih.gov/programdownload/Methodologic.htm +toolTypes: + - toolType: analysis_tools/modeling + - toolType: datasets_databases/epidemiologic_data +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +New "accelerated titration designs" for phase I clinical trials, along with a dose-toxicity model which can be used to evaluate the toxicity data. The dose-toxicity model can be used to assign the phase II starting dose, for the use of investigators conducting phase I studies. diff --git a/integration-tests/data/resources/resource46.md b/integration-tests/data/resources/resource46.md new file mode 100644 index 0000000..671d33d --- /dev/null +++ b/integration-tests/data/resources/resource46.md @@ -0,0 +1,20 @@ +--- +id: 46 +title: Optimal Two Stage Phase II Design Software +description: > + This file provides an easy to use, fast compiled C program that runs in a DOS window for computing optimal and minimax two-stage design for phase II clinical trials. + +website: https://brb.nci.nih.gov/programdownload/Opt.htm +toolTypes: + - toolType: analysis_tools/modeling +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +This file provides an easy to use, fast compiled C program that runs in a DOS window for computing optimal and minimax two-stage design for phase II clinical trials. diff --git a/integration-tests/data/resources/resource47.md b/integration-tests/data/resources/resource47.md new file mode 100644 index 0000000..6fee1aa --- /dev/null +++ b/integration-tests/data/resources/resource47.md @@ -0,0 +1,20 @@ +--- +id: 47 +title: pCR Trial Level Surrogate Analysis Software +description: > + This is an R source package that contains the code, data, documentation, and results of the analysis reported in "Assessing pathological complete response as a trial-level surrogate endpoint for early-stage breast cancer" and supplement published in Annals of Oncololgy in 2016. + +website: https://brb.nci.nih.gov/programdownload/pCRsoftware.html +toolTypes: + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +This is an R source package that contains the code, data, documentation, and results of the analysis reported in "Assessing pathological complete response as a trial-level surrogate endpoint for early-stage breast cancer" and supplement, by E. L. Korn, M. C. Sachs, & L. M. McShane, Ann Oncol 27: 10-15, 2016. diff --git a/integration-tests/data/resources/resource48.md b/integration-tests/data/resources/resource48.md new file mode 100644 index 0000000..1d5881b --- /dev/null +++ b/integration-tests/data/resources/resource48.md @@ -0,0 +1,22 @@ +--- +id: 48 +title: BRB-Seq Tools +description: > + BRB-SeqTools is a user-friendly pipeline tool that includes many well-known software applications designed to help general scientists preprocess and analyze Next Generation Sequencing (NGS) data. It supports the importing and pre-processing of both RNA-Seq and DNA-Seq data, in either FASTQ or BAM file format. + +website: https://brb.nci.nih.gov/seqtools/ +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +BRB-SeqTools is a user-friendly pipeline tool that includes many well-known software applications designed to help general scientists preprocess and analyze Next Generation Sequencing (NGS) data. It supports the importing and pre-processing of both RNA-Seq and DNA-Seq data, in either FASTQ or BAM file format. For RNA-Seq data in FASTQ format, Tophat or Subread/Subjunc can be used to align the reads to a reference genome. In addition, if sufficient computer memory (>= 32GB) is provided, the user can also choose the STAR aligner to map the reads, which, like Suread/Subjunc, significantly improves the computational speed. BWA-MEM and Subread are provided to align DNA-Seq data. Variant calling analysis can be conducted on both aligned RNA-Seq and DNA-Seq data using Samtools or GATK Best-Practices pipeline tools. For human tumor data, the Variant Call Format (VCF) files generated by the variant-calling pipeline can be filtered and annotated using the somatic mutation annotation tools included in BRB-SeqTools. These tools utilize ANNOVAR or SnpEff to provide gene annotation (e.g. Gene ID) as well as functional annotation (e.g. synonymous or non-synonymous mutation)for each variant, along with predicted effects (e.g., deleterious) of non-synonymous single-nucleotide variants calculated by popular prediction algorithms such as SIFT and Polyphen-2. Additionally, for RNA-Seq data, gene-level raw count data files can be generated using HTSeq. The raw count data can be read into BRB-ArrayTools for gene expression analysis. Currently, BRB-SeqTools can run in the Linux environment on local physical/virtual machines or on remote servers such as Amazon Cloud. diff --git a/integration-tests/data/resources/resource49.md b/integration-tests/data/resources/resource49.md new file mode 100644 index 0000000..4f5237f --- /dev/null +++ b/integration-tests/data/resources/resource49.md @@ -0,0 +1,20 @@ +--- +id: 49 +title: The Biospecimen Research Database +description: > + Database of Standard Operating Procedures (SOPs) and peer-reviewed articles in the field of human Biospecimen Science. SOP documents are searchable by keyword, or by curated fields (source organization,tier, applicable biospecimens, and topic). + +website: https://brd.nci.nih.gov/brd/ +toolTypes: + - toolType: lab_tools/protocols +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: clinical_trials + - researchType: basic +resourceAccess: + type: open +docs: + - doc: dctd +--- +Database of SOPs and peer-reviewed articles in the field of human Biospecimen Science. Each literature curation has been created by a Ph.D.-level scientist to capture the following: (1) relevant parameters that include the biospecimen investigated (type and location, patient diagnosis), preservation method, analyte(s) of interest and technology platform(s) used for analysis; (2) the pre-analytical factors investigated, including those relating to pre-acquisition, acquisition, preservation, processing, storage, and analysis; and (3) an original summary of relevant results. SOP documents are searchable by keyword, or by curated fields (source organization, tier, applicable biospecimens, and topic). diff --git a/integration-tests/data/resources/resource5.md b/integration-tests/data/resources/resource5.md new file mode 100644 index 0000000..b5780e0 --- /dev/null +++ b/integration-tests/data/resources/resource5.md @@ -0,0 +1,22 @@ +--- +id: 5 +title: Cancer Slide Digital Archive (CDSA) +description: > + The CDSA is a web-based platform to support the sharing, managment and analysis of digital pathology data. + +website: http://cancer.digitalslidearchive.net +toolTypes: + - toolType: datasets_databases/imaging + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: cancer_diagnosis +researchTypes: + - researchType : translational + - researchType : basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +The CDSA is a web-based platform to support the sharing, managment and analysis of digital pathology data. The Emory Instance currently hosts over 23,000 images from The Cancer Genome Atlas, and the software is being developed within the ITCR grant to be deployable as a digital pathology platform for other labs and Cancer Institutes. diff --git a/integration-tests/data/resources/resource50.md b/integration-tests/data/resources/resource50.md new file mode 100644 index 0000000..24e06ef --- /dev/null +++ b/integration-tests/data/resources/resource50.md @@ -0,0 +1,21 @@ +--- +id: 50 +title: Design, Monitoring, and Analysis of Bayesian Basket Discovery Trials +description: > + This application currently supports sample size planning and interim analysis for Bastket trials. + +website: https://brpnci.shinyapps.io/BasketTrials/ +toolTypes: + - toolType: analysis_tools/r_software + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +This application currently supports sample size planning and interim analysis for Bastket trials. diff --git a/integration-tests/data/resources/resource51.md b/integration-tests/data/resources/resource51.md new file mode 100644 index 0000000..4f28078 --- /dev/null +++ b/integration-tests/data/resources/resource51.md @@ -0,0 +1,22 @@ +--- +id: 51 +title: Baysian Phase II Single Arm Clinical Trials +description: > + This application supports the conduct of simulations for a single arm phase II clinical trial of a new treatment T with time to event outcome variable. + +website: https://brpnci.shinyapps.io/Phase2sim_survival_v1/ +toolTypes: + - toolType: analysis_tools/r_software + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +This application supports the conduct of simulations for a single arm phase II clinical trial of a new treatment T with time to event outcome variable + diff --git a/integration-tests/data/resources/resource52.md b/integration-tests/data/resources/resource52.md new file mode 100644 index 0000000..21223f2 --- /dev/null +++ b/integration-tests/data/resources/resource52.md @@ -0,0 +1,21 @@ +--- +id: 52 +title: Baysian Phase II Single Arm Clinical Trials +description: > + This application supports the conduct of simulations for a single arm phase II clinical trial of a new treatment T with a binary outcome variable. + +website: https://brpnci.shinyapps.io/Phase2sim_v1/ +toolTypes: + - toolType: analysis_tools/r_software + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +This application supports the conduct of simulations for a single arm phase II clinical trial of a new treatment T with a binary outcome variable diff --git a/integration-tests/data/resources/resource53.md b/integration-tests/data/resources/resource53.md new file mode 100644 index 0000000..ee3a0fc --- /dev/null +++ b/integration-tests/data/resources/resource53.md @@ -0,0 +1,19 @@ +--- +id: 53 +title: Cancer Imaging Program (CIP) Investigational new drug (IND) Directory +description: > + A centralized resource to facilitate the sharing of investigational new drug information. + +website: https://cipinddirectory.cancer.gov/ +toolTypes: + - toolType: datasets_databases/imaging +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +poc: + - email: CIPINDDirectory@mail.nih.gov +--- +A centralized resource to facilitate the sharing of IND information. diff --git a/integration-tests/data/resources/resource54.md b/integration-tests/data/resources/resource54.md new file mode 100644 index 0000000..7f52a11 --- /dev/null +++ b/integration-tests/data/resources/resource54.md @@ -0,0 +1,33 @@ +--- +id: 54 +title: Cancer Intervention and Surveillance Modeling Network +website: https://cisnet.cancer.gov/ +toolTypes: + - toolType: networks_consortiums +researchAreas: + - researchArea: cancer_health_disparities + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical + - researchType: epidemiologic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: feuerr@mail.nih.gov + name: + firstname: Eric (Rocky) + lastname: Feuer + phone: 240-276-6772 + title: Chief, Statistical Research and Applications Branch, Surveillance Research Program + - email: scotts2@mail.nih.gov + name: + firstname: Susan + lastname: Scott + phone: 240-276-6951 + title: Public Health Advisor, Surveillance Research Program +--- +Consortium of NCI-sponsored investigators who use statistical/simulation modeling to examine the impact of prevention, screening, and treatment on cancer incidence and mortality. These models can then project future trends and help determine optimal cancer control strategies. These models can also be used to guide public health research and priorities. Established in 2000, CISNET comprises six cancer site groups: breast, prostate, colorectal, lung, esophageal, and cervical. Many of the resources generated by the CISNET consortium are freely available on the website. Additionally, CISNET invites inquiries from outside groups regarding collaborations on cancer control issues that are amenable to modeling. Visit https://cisnet.cancer.gov/working/ or contact Dr. Eric Feuer (feuerr@mail.nih.gov)for more information. diff --git a/integration-tests/data/resources/resource55.md b/integration-tests/data/resources/resource55.md new file mode 100644 index 0000000..e81585e --- /dev/null +++ b/integration-tests/data/resources/resource55.md @@ -0,0 +1,22 @@ +--- +id: 55 +title: NCI-60 MicroXeno Data +description: > + The MicroXeno Project array data is a reference dataset that can be used to study multiple xenograft models at multiple passage in vivo. + +website: https://dtp.cancer.gov/databases_tools/microxeno_project.htm +toolTypes: + - toolType: datasets_databases/clinical_data + - toolType: lab_tools/biospecimen +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +The MicroXeno Project was initiated to generate genome-wide cDNA microarray data for all subcutaneous xenograft models currently used within the DTP. The array data provided here is a reference dataset that can be used to study multiple xenograft models at multiple passage in vivo. diff --git a/integration-tests/data/resources/resource56.md b/integration-tests/data/resources/resource56.md new file mode 100644 index 0000000..b06d782 --- /dev/null +++ b/integration-tests/data/resources/resource56.md @@ -0,0 +1,23 @@ +--- +id: 56 +title: NCI-60 Human Tumor Cell Lines Screen +description: > + The NCI-60 Human Tumor Cell Lines Screen utilizes 60 different human tumor cell lines to identify and characterize novel compounds with groth inhibition of killing of tumor cell lines. + +website: https://dtp.cancer.gov/discovery_development/nci-60/default.htm +toolTypes: + - toolType: lab_tools/assays + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +The NCI-60 Human Tumor Cell Lines Screen was implemented in fully operational form in 1990 and utilizes 60 different human tumor cell lines to identify and characterize novel compounds with groth inhibition of killing of tumor cell lines. diff --git a/integration-tests/data/resources/resource57.md b/integration-tests/data/resources/resource57.md new file mode 100644 index 0000000..6eb8b00 --- /dev/null +++ b/integration-tests/data/resources/resource57.md @@ -0,0 +1,22 @@ +--- +id: 57 +title: Compound inhibition Bulk Data Download +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma,and SCLC cell lines. + +website: https://dtp.cancer.gov/dtpstandard/subsets/comp.jsp +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/integration-tests/data/resources/resource58.md b/integration-tests/data/resources/resource58.md new file mode 100644 index 0000000..4c7666c --- /dev/null +++ b/integration-tests/data/resources/resource58.md @@ -0,0 +1,22 @@ +--- +id: 58 +title: DTP Dose Response Bulk Data Download +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma,and SCLC cell lines. + +website: https://dtp.cancer.gov/dtpstandard/subsets/dose.jsp +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/integration-tests/data/resources/resource59.md b/integration-tests/data/resources/resource59.md new file mode 100644 index 0000000..be08811 --- /dev/null +++ b/integration-tests/data/resources/resource59.md @@ -0,0 +1,19 @@ +--- +id: 59 +title: NCI Almanac +description: > + Helps researchers identify potentially promising combinations of cancer drugs by providing data and analysis tools showing how well pairs of FDA-approved cancer drugs performed in killing tumors cells for the NCI-60 Human Tumor Cell Lines. + +website: https://dtp.cancer.gov/ncialmanac/initializePage.do +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +Helps researchers identify potentially promising combinations of cancer drugs by providing data and analysis tools showing how well pairs of FDA-approved cancer drugs performed in killing tumors cells for the NCI-60 Human Tumor Cell Lines diff --git a/integration-tests/data/resources/resource6.md b/integration-tests/data/resources/resource6.md new file mode 100644 index 0000000..79e1cbd --- /dev/null +++ b/integration-tests/data/resources/resource6.md @@ -0,0 +1,21 @@ +--- +id: 6 +title: Cancer and Phenomics Toolkit (CaPTK) +description: > + CaPTk is a tool that facilitates translation of highly sophisticated methods that help us gain a comprehensive understanding of the underlying mechanisms of cancer from medical imaging research to the clinic. + +website: http://captk.projects.nitrc.org +toolTypes: + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_diagnosis +researchTypes: + - researchType : translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +CaPTk is a tool that facilitates translation of highly sophisticated methods that help us gain a comprehensive understanding of the underlying mechanisms of cancer from medical imaging research to the clinic. It replicates basic interactive functionalities of radiological workstations and is distributed under a BSD-style license. diff --git a/integration-tests/data/resources/resource60.md b/integration-tests/data/resources/resource60.md new file mode 100644 index 0000000..bf32590 --- /dev/null +++ b/integration-tests/data/resources/resource60.md @@ -0,0 +1,21 @@ +--- +id: 60 +title: Repository of Chemical Agents- Small Molecules and Isolated Natural Products +description: > + A repository of more than 200 synthetic compounds and pure natural products that are available to investigators for non-clinical research purposes. + +website: https://dtp.cancer.gov/organization/dscb/obtaining/default.htm +toolTypes: + - toolType: lab_tools/plant_samples + - toolType: lab_tools/compounds +researchAreas: + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +DTP maintains a repository of synthetic compounds and pure natural products that are available to investigators for non-clinical research purposes. The Repository collection is a uniquely diverse set of more than 200,000 compounds that have been either submitted to DTP for biological evaluation or, in some cases, synthesized under DTP auspices. diff --git a/integration-tests/data/resources/resource61.md b/integration-tests/data/resources/resource61.md new file mode 100644 index 0000000..1beaf97 --- /dev/null +++ b/integration-tests/data/resources/resource61.md @@ -0,0 +1,21 @@ +--- +id: 61 +title: Repository of Natural Products-Crude Extracts +description: > + This world's largest storehouse of natural products for testing against any human disease. The respository consists of nearly 170,000 extracts from samples of more than 70,000 plants and 10,000 marine organisms collected from more than 25 countries, plus more than 30,000 extracts of diverse bacteria and fungi. + +website: https://dtp.cancer.gov/organization/npb/introduction.htm +toolTypes: + - toolType: lab_tools/plant_samples + - toolType: lab_tools/compounds +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_treatment +researchTypes: + - researchType: basic +resourceAccess: + type: register +docs: + - doc: dctd +--- +The Developmental Therapeutics Program's (DTP) Natural Products Repository is the world's largest storehouse of natural products. It houses close 170,000 extracts from samples of more than 70,000 plants and 10,000 marine organisms collected from more than 25 countries, plus more than 30,000 extracts of diverse bacteria and fungi. The Natural Products Repository, administered by the Natural Products Branch, provided extramural researchers with natural products extracts for testing against any human disease. diff --git a/integration-tests/data/resources/resource62.md b/integration-tests/data/resources/resource62.md new file mode 100644 index 0000000..c3352a8 --- /dev/null +++ b/integration-tests/data/resources/resource62.md @@ -0,0 +1,15 @@ +--- +id: 62 +title: D2Refine +description: > + D2Refine is an integrated platform based on Open Refine that enables cancer study data/metadata harmonization and quality assurance. + +website: https://github.com/caCDE-QA/D2Refine/wiki +toolTypes: + - toolType: terminology +resourceAccess: + type: open +docs: + - doc: cbiit +--- +D2Refine is an integrated platform that enables cancer study data/metadata harmonization and quality assurance. The platform is based on the Open Refine and enhanced with a suite of plugins. diff --git a/integration-tests/data/resources/resource63.md b/integration-tests/data/resources/resource63.md new file mode 100644 index 0000000..838dec7 --- /dev/null +++ b/integration-tests/data/resources/resource63.md @@ -0,0 +1,15 @@ +--- +id: 63 +title: owl-qa +description: > + owl-qa is an OWL-based QA tool for cancer study common data elements (CDEs). The tool uses the combination of the NCI Thesaurus and additional disjointness axioms to detect potential errors and duplications in the data element definitions. + +website: https://github.com/caCDE-QA/owl-qa +toolTypes: + - toolType: terminology +resourceAccess: + type: open +docs: + - doc: cbiit +--- +owl-qa is an OWL-based QA tool for cancer study CDEs. The tool uses the combination of the NCI Thesaurus and additional disjointness axioms to detect potential errors and duplications in the data element definitions. The tool comprises three modules: Data Integration and Services Module; Compositional Expression Transformation Module; and OWL-based Quality Assurance Module. diff --git a/integration-tests/data/resources/resource64.md b/integration-tests/data/resources/resource64.md new file mode 100644 index 0000000..6cee02f --- /dev/null +++ b/integration-tests/data/resources/resource64.md @@ -0,0 +1,15 @@ +--- +id: 64 +title: Shape Expression Validation Tools (ShEx) +description: > + ShEx is a QA tool based on the Shape Expressions Language that is an emerging W3C standard to validate RDF graphs. + +website: https://github.com/caCDE-QA/ShEX +toolTypes: + - toolType: analysis_tools/data_visualization +resourceAccess: + type: open +docs: + - doc: cbiit +--- +ShEx is a QA tool based on the Shape Expressions Language that is an emerging W3C standard to validate RDF graphs. diff --git a/integration-tests/data/resources/resource65.md b/integration-tests/data/resources/resource65.md new file mode 100644 index 0000000..69c3c4c --- /dev/null +++ b/integration-tests/data/resources/resource65.md @@ -0,0 +1,21 @@ +--- +id: 65 +title: Methylation Integration (Mint) +description: > + A comprehensive software pipeline and set of Galaxy tools/workflows for integrative analysis of genome-wide DNA methylation and hydroxymethylation data. Data types can be either bisulfite sequencing and/or pull-down methods. + +website: https://github.com/sartorlab/mint +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +A comprehensive software pipeline and set of Galaxy tools/workflows for integrative analysis of genome-wide DNA methylation and hydroxymethylation data. Data types can be either bisulfite sequencing and/or pull-down methods. diff --git a/integration-tests/data/resources/resource66.md b/integration-tests/data/resources/resource66.md new file mode 100644 index 0000000..bde6d1c --- /dev/null +++ b/integration-tests/data/resources/resource66.md @@ -0,0 +1,20 @@ +--- +id: 66 +title: Trinity +description: > + Trinity Cancer Transcriptome Analysis Toolkit (CTAT) including de novo transcriptome assembly with downstream support for expression analysis and focused analyses on cancer transcriptomes, incorporating mutation and fusion transcript discovery, and single cell analysis. + +website: https://github.com/trinityrnaseq/trinityrnaseq/wiki +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Trinity Cancer Transcriptome Analysis Toolkit (CTAT) including de novo transcriptome assembly with downstream support for expression analysis and focused analyses on cancer transcriptomes, incorporating mutation and fusion transcript discovery, and single cell analysis. diff --git a/integration-tests/data/resources/resource67.md b/integration-tests/data/resources/resource67.md new file mode 100644 index 0000000..077af16 --- /dev/null +++ b/integration-tests/data/resources/resource67.md @@ -0,0 +1,20 @@ +--- +id: 67 +title: BioMuta +description: > + BioMuta is an annotated single-nucleotide variation (SNV) and disease association database in which variations are mapped to positions at genome, protein, and gene levels. The current database contains a total of 4,684,236 nonsynonymous SNVs (nsSNVs) reported in 18,269 genes across 77 Disease Ontology cancer types. + +website: https://hive.biochemistry.gwu.edu/biomuta +toolTypes: + - toolType: datasets_databases/genomic_datasets +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Cancer associated gene mutation. BioMuta is an annotated single-nucleotide variation (SNV) and disease association database in which variations are mapped to positions at genome, protein, and gene levels. The current BioMuta database (BioMuta v3.0) contains a total of 4,684,236 nonsynonymous SNVs (nsSNVs) reported in 18,269 genes across 77 Disease Ontology cancer types. A small number of variants were added to BioMuta following manual literature review of PubMed abstracts. diff --git a/integration-tests/data/resources/resource68.md b/integration-tests/data/resources/resource68.md new file mode 100644 index 0000000..f8b17c8 --- /dev/null +++ b/integration-tests/data/resources/resource68.md @@ -0,0 +1,20 @@ +--- +id: 68 +title: The Cancer Imaging Archive (TCIA) +description: > + The Cancer Imaging Archive (TCIA) provides a free, open archive of cancer-specific medical images and metadata accessible for public download. + +website: https://imaging.cancer.gov/informatics/cancer_imaging_archive.htm +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: cancer_treatment + - researchArea: cancer_biology +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +The Cancer Imaging Archive (TCIA) is provided by the Cancer Imaging Program (CIP) as a service to the research community. TCIA provides a freely accessible, open archive of cancer-specific medical images and metadata accessible for public download. diff --git a/integration-tests/data/resources/resource69.md b/integration-tests/data/resources/resource69.md new file mode 100644 index 0000000..ec6c455 --- /dev/null +++ b/integration-tests/data/resources/resource69.md @@ -0,0 +1,44 @@ +--- +id: 69 +title: Informatics Technology for Cancer Research (ITCR) Informatics Tools +description: > + Informatics resources for use across the development lifecycle, including the development of innovative methods and algorithms, early stage software development ,advanced stage software development, and sustainment of high-value resources. + +website: https://itcr.nci.nih.gov/informatics-tools +toolTypes: + - toolType: analysis_tools/data_visualization + - toolType: analysis_tools/genomic_analysis + - toolType: clinical_research_tools + - toolType: datasets_databases/clinical_data + - toolType: datasets_databases/genomic_datasets + - toolType: datasets_databases/imaging + - toolType: terminology +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_diagnosis + - researchArea: cancer_omics + - researchArea: cancer_treatment + - researchArea: causes_of_cancer + - researchArea: screening_detection +researchTypes: + - researchType: basic + - researchType: clinical + - researchType: epidemiologic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit + - doc: dcb + - doc: dccps + - doc: dcp + - doc: dctd +poc: + - email: Mervi.Heiskanen@nih.gov + name: + firstname: Mervi + lastname: Heiskanen + phone: 240-276 5175 + title: NCI CBIIT Program Manager +--- +ITCR is a trans-NCI program providing support for informatics resources across the development lifecycle, including the development of innovative methods and algorithms, early stage software development advanced stage software development, and sustainment of high-value resources on which the community has come to depend. Examples of relevant topics include but are not limited to: experiment design and execution, data collection, data processing and analysis, data quality assessment, data integration, data presentation and visualization, text mining and natural language processing, data compression, storage, organization, transmission. diff --git a/integration-tests/data/resources/resource7.md b/integration-tests/data/resources/resource7.md new file mode 100644 index 0000000..1d1450f --- /dev/null +++ b/integration-tests/data/resources/resource7.md @@ -0,0 +1,22 @@ +--- +id: 7 +title: Cloud-based Image Biomarker Platform (C-BIBOP) +description: > + C-BIBOP is a cloud based platform for medical imaging algorithm comparisons. C-BIBOP is used to conduct challenges and benchmarks and uses Docker containers to share algorithm. + +website: http://cbibop.github.io +toolTypes: + - toolType: datasets_databases/imaging + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_diagnosis + - researchArea: screening_detection +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +C-BIBOP is a cloud based platform for medical imaging algorithm comparisons. C-BIBOP is used to conduct challenges and benchmarks and uses Docker containers to share algorithm. diff --git a/integration-tests/data/resources/resource70.md b/integration-tests/data/resources/resource70.md new file mode 100644 index 0000000..fcfd244 --- /dev/null +++ b/integration-tests/data/resources/resource70.md @@ -0,0 +1,34 @@ +--- +id: 70 +title: Know Your Chances +description: > + The Know Your Chances websites provides interactive risk charts that show the likelihood of dying from a variety of cancer types and other diseases over a specific time frame, with the ability to accounting for age, sex, and race. + +website: https://knowyourchances.cancer.gov/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: scotts2@mail.nih.gov + name: + firstname: Susan + lastname: Scott + title: Public Health Advisor, Surveillance Research Program + phone: 240-276-6951 + - email: feuerr@mail.nih.gov + name: + firstname: Eric (Rocky) + lastname: Feuer + title: Chief, Statistical Research and Applications Branch, Surveillance Research Program + phone: 240-276-6772 +--- +The Know Your Chances websites provides interactive risk charts to put cancer in context. The risk charts show the likelihood of dying from a variety of cancer types and other diseases over a specific time frame. Because age, sex, and race are so important in determining a person's chances of dying from cancer or another disease, the charts allow the user to account for those factors. diff --git a/integration-tests/data/resources/resource71.md b/integration-tests/data/resources/resource71.md new file mode 100644 index 0000000..f87a6b4 --- /dev/null +++ b/integration-tests/data/resources/resource71.md @@ -0,0 +1,23 @@ +--- +id: 71 +title: Repository of Biologicals- Monoclonal Antibodies, Cytokines, and Cytokine Standards +description: > + This NCI-sponsered facility stores bulk cytokines, monoclonal antibodies, and cytokine standards. + +website: https://ncifrederick.cancer.gov/research/brb/logon.aspx +toolTypes: + - toolType: lab_tools/reagents + - toolType: lab_tools/vectors +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: register +docs: + - doc: dctd +pocs: [] +--- +This NCI-sponsered facility stores bulk cytokines, monoclonal antibodies, and cytokine standards under carefully controlled conditions. The repository provides a constant and uniform supply of hgh-quality reagents to nonprofit institutions and qualified commercial establishments at no charge. diff --git a/integration-tests/data/resources/resource72.md b/integration-tests/data/resources/resource72.md new file mode 100644 index 0000000..9e3e45b --- /dev/null +++ b/integration-tests/data/resources/resource72.md @@ -0,0 +1,21 @@ +--- +id: 72 +title: NCTN/NCORP Data Archive +description: > + This data archive is a centralized, controlled-access database for storing and sharing datasets generated from clinical trials of the National Clinical Trials Network (NCTN) for use in secondary studies. + +website: https://nctn-data-archive.nci.nih.gov +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: cancer_treatment +researchTypes: + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +NCI has created a centralized, controlled-access database, called the NCTN/NCORP Data Archive, for storing and sharing datasets generated from clinical trials of the National Clinical Trials Network (NCTN) to make these datasets available in a timely manner, on appropriate terms and conditions, to researchers who wish to analyze the data in secondary studies to enhance the public health benefit of the original work. + diff --git a/integration-tests/data/resources/resource73.md b/integration-tests/data/resources/resource73.md new file mode 100644 index 0000000..e93550c --- /dev/null +++ b/integration-tests/data/resources/resource73.md @@ -0,0 +1,21 @@ +--- +id: 73 +title: Personalized Cancer Therapy +description: > + Curated website cataloguing clinically actionable information for personalized cancer therapy including clinically significant genetic variants and drug-gene association. + +website: https://pct.mdanderson.org/#/ +toolTypes: + - toolType: datasets_databases/genomic_datasets + - toolType: datasets_databases/genomic_datasets +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +--- +Curated website cataloguing clinically actionable information for personalized cancer therapy including clinically significant genetic variants and drug-gene association. diff --git a/integration-tests/data/resources/resource74.md b/integration-tests/data/resources/resource74.md new file mode 100644 index 0000000..a7ec0d1 --- /dev/null +++ b/integration-tests/data/resources/resource74.md @@ -0,0 +1,21 @@ +--- +id: 74 +title: Repository of Patient-Derived Models +description: > + Patient-Derived Models (PDMs) comprised of patient-derived xenografts (PDXs) and in vitro patient-derived cell cultures (PDCs), including mixed cell populations, clonal cell lines and fibroblast cell lines to serve as a resource for public-private partnerships and for academic drug discovery efforts. + +website: https://pdmr.cancer.gov +toolTypes: + - toolType: lab_tools/biospecimen +researchAreas: + - researchArea: cancer_treatment + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +The National Cancer Institute (NCI) has developed a national repository of Patient-Derived Models (PDMs) comprised of patient-derived xenografts (PDXs) and in vitro patient-derived cell cultures (PDCs), including mixed cell populations, clonal cell lines and fibroblast cell lines to serve as a resource for public-private partnerships and for academic drug discovery efforts diff --git a/integration-tests/data/resources/resource75.md b/integration-tests/data/resources/resource75.md new file mode 100644 index 0000000..be5c6fa --- /dev/null +++ b/integration-tests/data/resources/resource75.md @@ -0,0 +1,20 @@ +--- +id: 75 +title: AMARETTO +description: > + AMARETTO is an algorithm that integrates copy number, DNA methylation and gene expression data to identify a set of driver genes by analyzing cancer samples and connects them to clusters of co-expressed genes. + +website: https://personal.broadinstitute.org/npochet/resources.html +toolTypes: + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics + - researchArea: causes_of_cancer +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +--- +AMARETTO for multi-omics data fusion and reformulations for pan-etiology and pan-cancer applications. AMARETTO is an algorithm that integrates copy number, DNA methylation and gene expression data to identify a set of driver genes by analyzing cancer samples and connects them to clusters of co-expressed genes. diff --git a/integration-tests/data/resources/resource76.md b/integration-tests/data/resources/resource76.md new file mode 100644 index 0000000..33d663e --- /dev/null +++ b/integration-tests/data/resources/resource76.md @@ -0,0 +1,20 @@ +--- +id: 76 +title: P-Mart +description: > + Web-based software platform to enable analysis and exploration of publicly available cancer proteomic datasets, such as those generated by the Clinical Proteomic Tumor Analysis Consortium (CPTAC) program. + +website: https://pmart.labworks.org/index.html +toolTypes: + - toolType: datasets_databases/genomic_datasets + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: cbiit +--- +Web-based software platform to enable analysis and exploration of publicly available cancer proteomic datasets, such as those generated by the Clinical Proteomic Tumor Analysis Consortium (CPTAC) program. diff --git a/integration-tests/data/resources/resource77.md b/integration-tests/data/resources/resource77.md new file mode 100644 index 0000000..a9cb49e --- /dev/null +++ b/integration-tests/data/resources/resource77.md @@ -0,0 +1,27 @@ +--- +id: 77 +title: Small Area Estimates for Cancer-Related Measures +description: > + This interactive website provides access to several small area estimation projects pertaining to risk factors. Model-based methods that combine information from one or two large-scale national surveys and multiple related sources have been developed to produce state or county-level estimates for a number of measures. + +website: https://sae.cancer.gov/ +toolTypes: + - toolType: datasets_databases +researchAreas: + - researchArea: cancer_prevention + - researchArea: screening_detection +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: liub2@mail.nih.gov + name: + firstname: Benmei + lastname: Liu + title: Mathematical Statistician, Statistical Research and Applications Branch, Surveillance Research Program + phone: 240-276-6718 +--- +This interactive website provides access to several small area estimation projects conducted by the National Cancer Institute. Model-based methods that combine information from one or two large-scale national surveys and multiple related sources have been developed to produce state or county-level estimates for a number of measures. The cancer-related measures included in the website pertain to risk factors (e.g., smoking prevalence), screening behaviors, tobacco use and policies (e.g., smoke-free laws), and knowledge (e.g., estimates for variables included in the Health Information National Trends Survey (HINTS)). The user may choose to display the estimates in a geographic map or in a table. diff --git a/integration-tests/data/resources/resource78.md b/integration-tests/data/resources/resource78.md new file mode 100644 index 0000000..5c1ca33 --- /dev/null +++ b/integration-tests/data/resources/resource78.md @@ -0,0 +1,21 @@ +--- +id: 78 +title: Sarcoma Project Data +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. + +website: https://sarcoma.cancer.gov/sarcoma/downloads.xhtml +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/integration-tests/data/resources/resource79.md b/integration-tests/data/resources/resource79.md new file mode 100644 index 0000000..9a59574 --- /dev/null +++ b/integration-tests/data/resources/resource79.md @@ -0,0 +1,28 @@ +--- +id: 79 +title: SEER Cancer Statistics Review (CSR), 1975-2014 +description: > + A report of the most recent cancer incidence, mortality, survival, prevalence, and lifetime risk statistics. This edition includes statistics from 1975 through 2014, the most recent year for which data are available. + +website: https://seer.cancer.gov/csr/1975_2014/ +toolTypes: + - toolType: analysis_tools/statistical_software +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - name: + firstname: Kathy + lastname: Cronin + title: Deputy Associate Director, Surveillance Research Program + phone: 240-276-6836 + +--- +A report of the most recent cancer incidence, mortality, survival, prevalence, and lifetime risk statistics. Published annually, the scope and purpose of this work are consistent with a report to the Senate Appropriations Committee (Breslow, 1988) which recommended that a broad profile of cancer be presented to the American public on a routine basis. This edition includes statistics from 1975 through 2014, the most recent year for which data are available. diff --git a/integration-tests/data/resources/resource8.md b/integration-tests/data/resources/resource8.md new file mode 100644 index 0000000..10b265d --- /dev/null +++ b/integration-tests/data/resources/resource8.md @@ -0,0 +1,22 @@ +--- +id: 8 +title: Cistrome +description: > + Curated and processed human/mouse ChIP/DNase-seq datasets in GEO, allowing users to search, browse, download ChIP-seq data signals, peaks, QC, motifs, target genes and similar datasets. + +website: http://cistrome.org/Cistrome/Cistrome_Project.html +toolTypes: + - toolType: datasets_databases/genomic_datasets + - toolType: analysis_tools/genomic_analysis +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType : basic +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Curated and processed human/mouse ChIP/DNase-seq datasets in GEO, allowing users to search, browse, download ChIP-seq data signals, peaks, QC, motifs, target genes and similar datasets. diff --git a/integration-tests/data/resources/resource80.md b/integration-tests/data/resources/resource80.md new file mode 100644 index 0000000..3573c86 --- /dev/null +++ b/integration-tests/data/resources/resource80.md @@ -0,0 +1,29 @@ +--- +id: 80 +title: SEER Research Data +description: > + The Surveillance, Epidemiology, and End Results (SEER) Research Data include SEER incidence and population data associated by age, sex, race, year of diagnosis, and geographic areas (including SEER registry and county). + +website: https://seer.cancer.gov/data/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: register +docs: + - doc: dccps + +poc: + - email: af2202@cumc.columbia.edu + name: + firstname: Kathy + lastname: Cronin + phone: 240-276-6836 + title: Deputy Associate Director, Surveillance Research Program +--- +The Surveillance, Epidemiology, and End Results (SEER) Research Data include SEER incidence and population data associated by age, sex, race, year of diagnosis, and geographic areas (including SEER registry and county). A signed Research Data Agreement is required to access these data. Use of these data for publication purposes should contain a citation which includes submission and release dates. diff --git a/integration-tests/data/resources/resource81.md b/integration-tests/data/resources/resource81.md new file mode 100644 index 0000000..51198f3 --- /dev/null +++ b/integration-tests/data/resources/resource81.md @@ -0,0 +1,34 @@ +--- +id: 81 +title: SEER*Explorer +description: > + SEER*Explorer is an interactive website that provides easy access to detailed statistics for a cancer site by gender, race, calendar year, age, and for a selected number of cancer sites, by stage and histology. + +website: https://seer.cancer.gov/explorer/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data +researchAreas: + - researchArea: cancer_health_disparities + - researchArea: cancer_survivorship + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: patricia.murphy@nih.gov + name: + firstname: Patricia + lastname: Murphy + title: Program Analyst, Surveillance Research Program + phone: 240-276-6903 + - email: mariotta@mail.nih.gov + name: + firstname: Angela + lastname: Mariotto + title: Chief, Data Analytics Branch, Surveillance Research Program + phone: 240-276-6698 +--- +SEER*Explorer is a new interactive website that provides easy access to a wide range of SEER cancer statistics. It provides detailed statistics for a cancer site by gender, race, calendar year, age, and for a selected number of cancer sites, by stage and histology. Users can create custom graphs and tables, download data and images, share links to results, and (coming soon) download SEER*Stat sessions. diff --git a/integration-tests/data/resources/resource82.md b/integration-tests/data/resources/resource82.md new file mode 100644 index 0000000..7eeb41a --- /dev/null +++ b/integration-tests/data/resources/resource82.md @@ -0,0 +1,28 @@ +--- +id: 82 +title: Health Disparities Calculator (HD*Calc) +description: > + Statistical software designed to generate multiple summary measures to evaluate and monitor health disparities. HD*Calc allows the user to import Surveillance, Epidemiology, and End Results (SEER) or other population-based health data and calculate any of eleven disparity measurements. + +website: https://seer.cancer.gov/hdcalc/ +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: register +docs: + - doc: dccps +poc: + - email: lewisde@mail.nih.gov + name: + firstname: Denise + lastname: Lewis + title: Epidemiologist, Data Analytics Branch, Surveillance Research Program + phone: 240-276-6757 +--- +Statistical software designed to generate multiple summary measures to evaluate and monitor health disparities. HD*Calc allows the user to import Surveillance, Epidemiology, and End Results (SEER) or other population-based health data and calculate any of eleven disparity measurements. Cancer rates and other data categorized by disparity groups such as race/ethnicity, socioeconomic status, and geographic area can be used with HD*Calc to generate output presented in tabular and graphic formats. diff --git a/integration-tests/data/resources/resource83.md b/integration-tests/data/resources/resource83.md new file mode 100644 index 0000000..fc65c56 --- /dev/null +++ b/integration-tests/data/resources/resource83.md @@ -0,0 +1,28 @@ +--- +id: 83 +title: Annual Report to the Nation on the Status of Cancer, 1975-2014 +description: > + An update of rates for new cases and deaths as well as trends for the most common cancers in the United States. The special section of this report focuses on survival. + +website: https://seer.cancer.gov/report_to_nation/ +toolTypes: + - toolType: analysis_tools/statistical_software +researchAreas: + - researchArea: cancer_health_disparities + - researchArea: cancer_survivorship + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: cronink@mail.nih.gov + name: + firstname: Kathy + lastname: Cronin + title: Deputy Associate Director, Surveillance Research Program + phone: 240-276-6836 +--- +An update of rates for new cases and deaths as well as trends for the most common cancers in the United States. The special section of this report focuses on survival. diff --git a/integration-tests/data/resources/resource84.md b/integration-tests/data/resources/resource84.md new file mode 100644 index 0000000..a889b02 --- /dev/null +++ b/integration-tests/data/resources/resource84.md @@ -0,0 +1,28 @@ +--- +id: 84 +title: SEER*Stat Software +description: > + The SEER*Stat statistical software is a powerful PC tool to view individual cancer records and to produce statistics for studying the impact of cancer on a population. + +website: https://seer.cancer.gov/seerstat/ +toolTypes: + - toolType: analysis_tools/statistical_software +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: register +docs: + - doc: dccps +poc: + - email: mariotta@mail.nih.gov + name: + firstname: Angela + lastname: Mariotto + title: Chief, Data Analytics Branch, Surveillance Research Program + phone: 240-276-6698 +--- +The SEER*Stat statistical software provides a convenient, intuitive mechanism for the analysis of SEER and other cancer-related databases. It is a powerful PC tool to view individual cancer records and to produce statistics for studying the impact of cancer on a population. SEER*Stat software is distributed with the SEER Research Data and users must obtain access to the data before using the software. diff --git a/integration-tests/data/resources/resource85.md b/integration-tests/data/resources/resource85.md new file mode 100644 index 0000000..3118ad1 --- /dev/null +++ b/integration-tests/data/resources/resource85.md @@ -0,0 +1,26 @@ +--- +id: 85 +title: Cancer Stat Fact Sheets +description: > + Frequently-requested cancer statistics for a number of common cancer types, which may include incidence, mortality, survival, stage, prevalence, and lifetime risk. + +website: https://seer.cancer.gov/statfacts/ +toolTypes: + - toolType: analysis_tools/statistical_software +researchAreas: + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - name: + firstname: Patricia + lastname: Murphy + title: Program Analyst, Surveillance Research Program + phone: 240-276-6903 +--- +Statistical summaries, by cancer site, for a number of common cancer types. Provide a quick overview of frequently-requested cancer statistics, which may include incidence, mortality, survival, stage, prevalence, and lifetime risk. diff --git a/integration-tests/data/resources/resource86.md b/integration-tests/data/resources/resource86.md new file mode 100644 index 0000000..2570e12 --- /dev/null +++ b/integration-tests/data/resources/resource86.md @@ -0,0 +1,15 @@ +--- +id: 86 +title: Modified UMS, Modified SemRep and SemMedDB-UTH +description: > + This database holds semantic predications extracted from MEDLINE citations with a version of SemRep that increases the number of predications on drug therapies for cancer. + +website: https://skr3.nlm.nih.gov/SemMedDB/index_uth.html +toolTypes: + - toolType: terminology +resourceAccess: + type: open +docs: + - doc: cbiit +--- +Modified UMLS, modified SemRep and SemMedDB-UTH äóñ these are resources (UMLS, SemMedDB-UT) and tools (SemRep) created and maintained by National Library of Medicine that we have modified for personalized cancer therapy and returned to the NLM. diff --git a/integration-tests/data/resources/resource87.md b/integration-tests/data/resources/resource87.md new file mode 100644 index 0000000..79e4ff8 --- /dev/null +++ b/integration-tests/data/resources/resource87.md @@ -0,0 +1,31 @@ +--- +id: 87 +title: State Cancer Profiles +description: > + This interactive website provides cancer statistics, charts, and maps for data topics across the cancer control continuum, including demographics, risk factors, screening, cancer knowledge, incidence, prevalence, and mortality. The focus is on cancer sites with evidence-based cancer control interventions. + +website: https://statecancerprofiles.cancer.gov/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data +researchAreas: + - researchArea: cancer_health_disparities + - researchArea: causes_of_cancer + - researchArea: screening_detection + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: tatalovichzp@mail.nih.gov + name: + firstname: Zaria + lastname: Tatalovich + title: Geospatial Scientist, Statistical Research and Applications Branch, Surveillance Research Program + phone: 240-276-6976 + +--- +State Cancer Profiles characterizes the cancer burden in a standardized manner to motivate action, integrate surveillance into cancer control planning, characterize areas and demographic groups, and expose health disparities. This interactive website provides cancer statistics, charts, and maps for data topics across the cancer control continuum, including demographics, risk factors, screening, cancer knowledge, incidence, prevalence, and mortality. The focus is on cancer sites with evidence-based cancer control interventions. The website provides support for deciding where to focus cancer control efforts. State Cancer Profiles is one tool of the Cancer Control P.L.A.N.E.T. portal, which provides access to Web-based resources. diff --git a/integration-tests/data/resources/resource88.md b/integration-tests/data/resources/resource88.md new file mode 100644 index 0000000..a155b67 --- /dev/null +++ b/integration-tests/data/resources/resource88.md @@ -0,0 +1,28 @@ +--- +id: 88 +title: CI*Rank +description: > + Age-adjusted U.S. incidence and mortality rates by geographic region, plus the confidence intervals for those rates and their ranks. + +website: https://surveillance.cancer.gov/cirank/ +toolTypes: + - toolType: datasets_databases/epidemiologic_data +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: open +docs: + - doc: dccps +poc: + - email: scotts2@mail.nih.gov + name: + firstname: Susan + lastname: Scott + title: Public Health Advisor, Surveillance Research Program + phone: 240-276-6951 +--- +Age-adjusted U.S. incidence and mortality rates by geographic region, plus the confidence intervals for those rates and their ranks. Results presented in CI*Rank help show the usefulness of ranks. For example, ranks for relatively rare diseases or less populated areas may be essentially meaningless because of their large variability, but ranks for more common diseases in densely populated regions can be very useful. diff --git a/integration-tests/data/resources/resource89.md b/integration-tests/data/resources/resource89.md new file mode 100644 index 0000000..0c1ff87 --- /dev/null +++ b/integration-tests/data/resources/resource89.md @@ -0,0 +1,31 @@ +--- +id: 89 +title: DevCan +description: > + This tool consists of statistical software and associated databases that compute the probability of being diagnosed with or dying of cancer for a particular selected cancer site. The probability can be calculated either from birth (lifetime risk) or for a person who is a particular age. + +website: https://surveillance.cancer.gov/devcan/ +toolTypes: + - toolType: analysis_tools/modeling +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: register + notes: Users must sign a terms of use agreement in order to download the software. +docs: + - doc: dccps + +poc: + - email: scotts2@mail.nih.gov + name: + firstname: Susan + lastname: Scott + phone: 240-276-6951 + title: Public Health Advisor, Surveillance Research Program +--- +This tool consists of statistical software and associated databases that compute the probability of being diagnosed with or dying of cancer for a particular selected cancer site. Depending on user preference, the probability may be calculated either from birth (lifetime risk) or for a person who is a particular age. + diff --git a/integration-tests/data/resources/resource9.md b/integration-tests/data/resources/resource9.md new file mode 100644 index 0000000..657043d --- /dev/null +++ b/integration-tests/data/resources/resource9.md @@ -0,0 +1,18 @@ +--- +id: 9 +title: CLAMP-Cancer +description: > + A tool to quickly build customized natural language processing pipelines for extracting cancer information from pathology reports, though user-friendly interface with minimum programming knowledge + +website: http://clamp.uth.edu/cancer.php +toolTypes: + - toolType: datasets_databases/clinical_data + - toolType: analysis_tools/natural_language_processing +researchTypes: + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +--- +A tool to quickly build customized natural language processing pipelines for extracting cancer information from pathology reports, though user-friendly interface with minimum programming knowledge diff --git a/integration-tests/data/resources/resource90.md b/integration-tests/data/resources/resource90.md new file mode 100644 index 0000000..3ae6142 --- /dev/null +++ b/integration-tests/data/resources/resource90.md @@ -0,0 +1,35 @@ +--- +id: 90 +title: Joinpoint Trend Analysis Software +description: > + Statistical software for analyzing trend data (e.g., cancer incidence rates) using joinpoint models. Joinpoint software is available in desktop version (for a PC) and command-line version (for use in batch mode or called from other software, such as SAS or R). + +website: https://surveillance.cancer.gov/joinpoint/ +toolTypes: + - toolType: analysis_tools/modeling +researchAreas: + - researchArea: cancer_public_health + - researchArea: cancer_health_disparities + - researchArea: cancer_statistics +researchTypes: + - researchType: epidemiologic +resourceAccess: + type: register +docs: + - doc: dccps + +poc: + - email: scotts2@mail.nih.gov + name: + firstname: Susan + lastname: Scott + phone: 240-276-6951 + title: Public Health Advisor, Surveillance Research Program + - email: feuerr@mail.nih.gov + name: + firstname: Eric (Rocky) + lastname: Feuer + phone: 240-276-6772 + title: Chief, Statistical Research and Applications Branch, Surveillance Research Program +--- +Statistical software for analyzing trend data (e.g., cancer incidence rates) using joinpoint models, that is, models where several different lines are connected together at the "joinpoints". Cancer trends reported in NCI publications are calculated using the Joinpoint Regression Program to analyze rates calculated by the SEER*Stat software. Enables the user to test whether an apparent change in trend is statistically significant. Two versions of Joinpoint software are available: desktop version (for a PC) and command-line version (for use in batch mode or called from other software, such as SAS or R). diff --git a/integration-tests/data/resources/resource91.md b/integration-tests/data/resources/resource91.md new file mode 100644 index 0000000..e8936bf --- /dev/null +++ b/integration-tests/data/resources/resource91.md @@ -0,0 +1,20 @@ +--- +id: 91 +title: SampleMap +description: > + Projects samples into a GoogleMap explorer to allow overlaying omics attributes to spot patterns quickly. A TumorMap version was built for TCGA analysis. + +website: https://tumormap.ucsc.edu +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +--- +Projects samples into a GoogleMap explorer to allow overlaying omics attributes to spot patterns quickly. A TumorMap version was built for TCGA analysis. diff --git a/integration-tests/data/resources/resource92.md b/integration-tests/data/resources/resource92.md new file mode 100644 index 0000000..0f52d10 --- /dev/null +++ b/integration-tests/data/resources/resource92.md @@ -0,0 +1,23 @@ +--- +id: 92 +title: ivyGlimpse +description: > + Bioconductor-based interface to Ivy-GAP (glioblastoma.alleninstitute.org) data resources, allowing interactive selection of (a) image features for scatterplotting, (b) image sets for stratified survival distribution estimation, and (c) gene sets for expression distribution comparison between strata. + +website: https://vjcitn.shinyapps.io/ivyglimpse/ +toolTypes: + - toolType: datasets_databases/clinical_data + - toolType: datasets_databases/imaging +researchAreas: + - researchArea: causes_of_cancer + - researchArea: cancer_omics +researchTypes: + - researchType: basic + - researchType: translational +resourceAccess: + type: open +docs: + - doc: cbiit +pocs: [] +--- +Bioconductor-based interface to Ivy-GAP (glioblastoma.alleninstitute.org) data resources. This app introduces users to quantitative elements of the Ivy Glioblastoma Atlas project. This app allows interactive selection of (a) image features for scatterplotting, (b) image sets for stratified survival distribution estimation, and (c) gene sets for expression distribution comparison between strata. diff --git a/integration-tests/data/resources/resource93.md b/integration-tests/data/resources/resource93.md new file mode 100644 index 0000000..e50c57f --- /dev/null +++ b/integration-tests/data/resources/resource93.md @@ -0,0 +1,22 @@ +--- +id: 93 +title: AIDS Antiviral Screen Data +description: > + Results and chemical structural data on compounds checked by the Developmental Therapeutics Program (DTP) AIDS Antiviral Screen. + +website: https://wiki.nci.nih.gov/display/NCIDTPdata/AIDS+Antiviral+Screen+Data +toolTypes: + - toolType: datasets_databases/clinical_data + - toolType: lab_tools/biospecimen +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +The DTP AIDS Antiviral Screen has checked tens of thousands of compounds for evidence of anti-HIV activity. Available are screening results and chemical structural data on compounds that are not covered by a confidentiality agreement. diff --git a/integration-tests/data/resources/resource94.md b/integration-tests/data/resources/resource94.md new file mode 100644 index 0000000..b283a0b --- /dev/null +++ b/integration-tests/data/resources/resource94.md @@ -0,0 +1,22 @@ +--- +id: 94 +title: Chemical Data +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma,and SCLC cell lines. + +website: https://wiki.nci.nih.gov/display/NCIDTPdata/Chemical+Data +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/integration-tests/data/resources/resource95.md b/integration-tests/data/resources/resource95.md new file mode 100644 index 0000000..1779a35 --- /dev/null +++ b/integration-tests/data/resources/resource95.md @@ -0,0 +1,21 @@ +--- +id: 95 +title: Compound Sets +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. + +website: https://wiki.nci.nih.gov/display/NCIDTPdata/Compound+Sets +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/integration-tests/data/resources/resource96.md b/integration-tests/data/resources/resource96.md new file mode 100644 index 0000000..7d6ea98 --- /dev/null +++ b/integration-tests/data/resources/resource96.md @@ -0,0 +1,22 @@ +--- +id: 96 +title: In Vivo Antitumor Assays +description: > + For approximately 30 years, the NCI used in vivo animal tumor models to screen compounds for potential antitumor activity. A detailed description of these models was published in Cancer Chemotherapy Reports Part 3, Vol. 3 No. 2, September 1972. + +website: https://wiki.nci.nih.gov/display/NCIDTPdata/In+Vivo+Antitumor+Assays +toolTypes: + - toolType: lab_tools/assays +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +For approximately 30 years, the NCI used in vivo animal tumor models to screen compounds for potential antitumor activity. A detailed description of these models was published in Cancer Chemotherapy Reports Part 3, Vol. 3 No. 2, September 1972. diff --git a/integration-tests/data/resources/resource97.md b/integration-tests/data/resources/resource97.md new file mode 100644 index 0000000..e8b4963 --- /dev/null +++ b/integration-tests/data/resources/resource97.md @@ -0,0 +1,22 @@ +--- +id: 97 +title: Molecular Target Data +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. + +website: https://wiki.nci.nih.gov/display/NCIDTPdata/Molecular+Target+Data +toolTypes: + - toolType: datasets_databases/clinical_data + - toolType: lab_tools/assays +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/integration-tests/data/resources/resource98.md b/integration-tests/data/resources/resource98.md new file mode 100644 index 0000000..a26d196 --- /dev/null +++ b/integration-tests/data/resources/resource98.md @@ -0,0 +1,22 @@ +--- +id: 98 +title: NCI-60 Growth inhibition Data +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma,and SCLC cell lines. + +website: https://wiki.nci.nih.gov/display/NCIDTPdata/NCI-60+Growth+Inhibition+Data +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +pocs: [] +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/integration-tests/data/resources/resource99.md b/integration-tests/data/resources/resource99.md new file mode 100644 index 0000000..41c1c9d --- /dev/null +++ b/integration-tests/data/resources/resource99.md @@ -0,0 +1,21 @@ +--- +id: 99 +title: Yeast Anticancer Drug Screen +description: > + Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. + +website: https://wiki.nci.nih.gov/display/NCIDTPdata/Yeast+Anticancer+Drug+Screen +toolTypes: + - toolType: datasets_databases/clinical_data +researchAreas: + - researchArea: screening_detection + - researchArea: cancer_treatment +researchTypes: + - researchType: basic + - researchType: clinical_trials +resourceAccess: + type: open +docs: + - doc: dctd +--- +Compound sensitivity data for the NCI60 screen and similar screens run on sarcoma cell lines and small cell lung cancer cell lines, plus molecular target characterization data for the NCI60, sarcoma, and SCLC cell lines. diff --git a/lib/sources/__tests__/data/content/resource1.md b/lib/sources/__tests__/data/content/resource1.md new file mode 100644 index 0000000..5f63d94 --- /dev/null +++ b/lib/sources/__tests__/data/content/resource1.md @@ -0,0 +1,20 @@ +--- +id: 1 +title: Enhancer Linking by Methylation/Expression Relationships (ELMER) +description: > + ELMER is a R tool for analysis of DNA methylation and expression datasets. + +website: http://bioconductor.org/packages/release/bioc/html/ELMER.html +toolTypes: + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: itcr +poc: [] +--- +ELMER is a R tool for analysis of DNA methylation and expression datasets. Integrative analysis allows reconstruction of *in vivo* transcription factor networks altered in cancer, along with identification of the underlying gene regulatory sequences. \ No newline at end of file diff --git a/lib/sources/__tests__/data/content/resource2.md b/lib/sources/__tests__/data/content/resource2.md new file mode 100644 index 0000000..db9b777 --- /dev/null +++ b/lib/sources/__tests__/data/content/resource2.md @@ -0,0 +1,19 @@ +--- +id: 2 +title: Next-Generation Clustered Heat Maps (NG-CHM) +description: > + NG-CHMs are interactive heat maps of multiple tumor types and multiple data types profiled by The Cancer Genome Atlas (TCGA) Project . + +website: http://bioinformatics.mdanderson.org/TCGA/NGCHMPortal +toolTypes: + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: itcr +--- +NG-CHMs are interactive heat maps of multiple tumor types and multiple data types profiled by TCGA. The NG-CHM tool enables users to zoom and pan across the heatmap, alter its color scheme, generate production-quality PDFs, and link out from rows, columns, and individual heatmap entries to related statistics, databases, and other information. The maps provide an exploratory environment invaluable for identifying cancer sub-types or investigating genes or pathways of interest. \ No newline at end of file diff --git a/lib/sources/__tests__/data/content/resource3.md b/lib/sources/__tests__/data/content/resource3.md new file mode 100644 index 0000000..cdc5df4 --- /dev/null +++ b/lib/sources/__tests__/data/content/resource3.md @@ -0,0 +1,21 @@ +--- +id: 3 +title: The BioMedical Evidence Graph (BMEG) +description: > + The BMEG is a cancer data integration platform that utilizes methods collected from Dialogue for Reverse Engineering Assessments and Methods (DREAM) challenges and applied to large datasets, such as The Cancer Genome Atlas, and makes them available for analysis using a high performance graph database. + +website: http://bmeg.io +toolTypes: + - toolType: datasets_databases/biological_networks + - toolType: analysis_tools/data_visualization +researchAreas: + - researchArea: cancer_omics + - researchArea: cancer_biology +researchTypes: + - researchType: basic +resourceAccess: + type: open +docs: + - doc: itcr +--- +The BMEG is a cancer data integration platform that utilizes methods collected from DREAM challenges and applied to large datasets, such as The Cancer Genome Atlas, and makes them available for analysis using a high performance graph database. DREAM challenges are crowdsourcing challenges designed to evaluate model predictions and pathway inference algorithms in systems biology and medicine. \ No newline at end of file diff --git a/lib/sources/__tests__/data/content/resource4.md b/lib/sources/__tests__/data/content/resource4.md new file mode 100644 index 0000000..2f7cfc5 --- /dev/null +++ b/lib/sources/__tests__/data/content/resource4.md @@ -0,0 +1,31 @@ +--- +id: 4 +title: Driver-gene Inference by Genetical-Genomics and Information Theory (DIGGIT) +description: > + DIGGIT is a bioconductor package for identifying genetic variants that lie upstream of master regulators and drive cellular phenotypes. + +website: http://www.bioconductor.org/packages/release/bioc/html/diggit.html +toolTypes: + - toolType: analysis_tools/genomic_analysis + - toolType: analysis_tools/r_software +researchAreas: + - researchArea: cancer_biology + - researchArea: cancer_omics + - researchArea: cancer_treatment +researchTypes: + - researchType: translational +docs: + - doc: ccg +resourceAccess: + type: open +poc: + - email: af2202@cumc.columbia.edu + name: + firstname: Aristidis + lastname: Floratos + - email: ac2248@cumc.columbia.edu + name: + firstname: Andrea + lastname: Califano +--- +Genomic alterations that contribute to aberrant master regulator (MR) activity must be upstream of the MR, although the specific pathways involved may not be known. Master regulators are transcription factors that control the majority of genes differentially expressed between two molecular phenotypes. The DIGGIT package integrates patient-matched genomic mutation and gene expression data with corresponding gene regulatory networks to identify candidate driver mutations that are upstream of and directly perturb master regulators. \ No newline at end of file diff --git a/lib/sources/__tests__/data/content/resource5.md b/lib/sources/__tests__/data/content/resource5.md new file mode 100644 index 0000000..55244a5 --- /dev/null +++ b/lib/sources/__tests__/data/content/resource5.md @@ -0,0 +1,21 @@ +--- +id: 5 +title: Cancer Slide Digital Archive (CDSA) +description: > + The CDSA is a web-based platform to support the sharing, management, and analysis of digital pathology data. + +website: http://cancer.digitalslidearchive.net +toolTypes: + - toolType: datasets_databases/imaging + - toolType: analysis_tools/imaging_analysis +researchAreas: + - researchArea: cancer_diagnosis +researchTypes: + - researchType : translational + - researchType : basic +resourceAccess: + type: open +docs: + - doc: itcr +--- +The CDSA is a web-based platform to support the sharing, management, and analysis of digital pathology data. Emory University currently hosts over 23,000 images from The Cancer Genome Atlas, and the software is being developed within the Informatics Technology for Cancer Research (ITCR) grant to be deployable as a digital pathology platform for other labs and cancer institutes. \ No newline at end of file diff --git a/lib/sources/__tests__/data/empty/README.txt b/lib/sources/__tests__/data/empty/README.txt new file mode 100644 index 0000000..9f96841 --- /dev/null +++ b/lib/sources/__tests__/data/empty/README.txt @@ -0,0 +1 @@ +This directory is deliberately empty. \ No newline at end of file diff --git a/lib/sources/__tests__/filesystem-resource-source.js b/lib/sources/__tests__/filesystem-resource-source.js new file mode 100644 index 0000000..dd88b06 --- /dev/null +++ b/lib/sources/__tests__/filesystem-resource-source.js @@ -0,0 +1,269 @@ +const winston = require('winston'); +const WinstonNullTransport = require('winston-null-transport'); + +const FileSystemResourceSource = require('../filesystem-resource-source'); + +const logger = winston.createLogger({ + level: 'debug', + format: winston.format.simple(), + transports: [ + new WinstonNullTransport() + ] +}); + +const VALID_CONFIG = { + resourcesPath: '/resources' +}; + +const DATA_DIRECTORY_CONFIG = { + resourcesPath: './lib/sources/__tests__/data/content' +} + +const EMPTY_DIRECTORY_CONFIG = { + resourcesPath: 'lib/sources/__tests__/data/empty' +} + + +describe('FileSystemResourceSource', () => { + describe('constructor', () => { + + it('Creates with defaults', () => { + + const source = new FileSystemResourceSource(logger, {}); + expect(source.resourcesPath).toBe('/resources'); + }); + + it('Creates with defaults, and custom override', () => { + + const source = new FileSystemResourceSource( + logger, + { + ...VALID_CONFIG, + resourcesPath: '/custom-value' + } + ); + expect(source.resourcesPath).toBe('/custom-value'); + }); + + it('Trims leading/trailing spaces from resourcesPath', () => { + + const source = new FileSystemResourceSource( + logger, + { + ...VALID_CONFIG, + resourcesPath: ' /custom-value ' + } + ); + expect(source.resourcesPath).toBe('/custom-value'); + }); + + it.each([ + [ + 'throws an error on null resource path', + { + ...VALID_CONFIG, + resourcesPath: null + } + ], + [ + 'throws an error on empy resource path', + { + ...VALID_CONFIG, + resourcesPath: '' + } + ], + [ + 'throws an error on blank resource path', + { + ...VALID_CONFIG, + resourcesPath: ' ' + } + ] + ])( + '%s', + (name, config) => { + expect(() => { + new FileSystemResourceSource(logger, config); + }).toThrow('You must supply a resource directory URL.'); + } + ); + }); + + describe('begin', () => { + + // Minimal test in case of begin gaining functionality. + it('succeeds', async () => { + + const instance = await FileSystemResourceSource.GetInstance(logger, VALID_CONFIG); + + expect(async() => { + await instance.begin(); + }).not.toThrow(); + }) + }); + + describe('end', () => { + + // Minimal test in case of end gaining functionality. + it('succeeds', async () => { + + const instance = await FileSystemResourceSource.GetInstance(logger, VALID_CONFIG); + + expect(async() => { + await instance.end(); + }).not.toThrow(); + }) + }); + + describe('abort', () => { + + // Minimal test in case of abort gaining functionality. + it('succeeds', async () => { + + const instance = await FileSystemResourceSource.GetInstance(logger, VALID_CONFIG); + + expect(async() => { + await instance.abort(); + }).not.toThrow(); + }) + }); + + describe('ValidateConfig', () => { + it('validates config', () => { + const actual = FileSystemResourceSource.ValidateConfig(VALID_CONFIG); + expect(actual).toEqual([]); + }); + + it('reports bad config', () => { + const actual = FileSystemResourceSource.ValidateConfig( + logger, + { + ...VALID_CONFIG, + resourcesPath: null + } + ); + expect(actual).toEqual([new Error('You must supply a resource directory URL.')]) + }); + }); + + describe('GetInstance', () => { + it('gets instance with defaults', async () => { + const instance = await FileSystemResourceSource.GetInstance(logger, {}); + expect(instance).not.toBeNull(); + expect(instance.resourcesPath).toBe('/resources'); + }); + + it('gets instance with non-default', async () => { + const instance = await FileSystemResourceSource.GetInstance( + logger, + { + ...VALID_CONFIG, + resourcesPath: '/non-default' + } + ); + expect(instance).not.toBeNull(); + expect(instance.resourcesPath).toBe('/non-default'); + }); + + it('throws an error with missing config', async () => { + try { + const actual = await FileSystemResourceSource.GetInstance(logger); + } + catch (err) { + expect(err).not.toBeNull(); + expect(err.message).toBe('Config must be supplied.') + } + }); + + }); + + describe('getRecords', () => { + + it('returns empty from directory with no markdown files', async () => { + const source = await FileSystemResourceSource.GetInstance(logger, EMPTY_DIRECTORY_CONFIG); + await source.begin(); + const records = await source.getRecords(); + await source.end(); + + expect(records).toStrictEqual([]); + }); + + it('returns records from directory with markdown files', async () => { + const source = await FileSystemResourceSource.GetInstance(logger, DATA_DIRECTORY_CONFIG); + await source.begin(); + const records = await source.getRecords(); + await source.end(); + + expect(records).toHaveLength(5); + records.forEach( r => { + expect(r).not.toBeNull(); + expect(r).not.toBeUndefined(); + expect(r.length).toBeGreaterThan(600); + }); + }); + + it('throws an error on non-existent directory', async () => { + const source = await FileSystemResourceSource.GetInstance( + logger, + { + ...DATA_DIRECTORY_CONFIG, + resourcesPath: './chicken' + } + ); + await source.begin(); + + // Two asserts in order to avoid OS-specific path separators. + await expect(source.getRecords()).rejects.toThrow("ENOENT: no such file or directory"); + await expect(source.getRecords()).rejects.toThrow("chicken"); + }); + + }); + + // This is slightly dirty in that helper function should ideally should be treated as an + // implementation detail without tests of their own. But, (at least in this case) it's + // easier to build out and test the sub-pieces as part of getting getRecords working. + describe('helper functions', () => { + + describe('getResourceList', () => { + + it('returns records when there are markdown files', async () => { + const source = await FileSystemResourceSource.GetInstance(logger, DATA_DIRECTORY_CONFIG); + await source.begin(); + const fileList = await source.getResourceList(); + await source.end(); + + expect(fileList).toHaveLength(5); + fileList.forEach( f => { + expect(f).not.toBeNull(); + expect(f.toLowerCase().endsWith('.md')).toBe(true); + }); + }); + + it('returns empty when there are no markdown files', async () => { + const source = await FileSystemResourceSource.GetInstance(logger, EMPTY_DIRECTORY_CONFIG); + await source.begin(); + const fileList = await source.getResourceList(); + await source.end(); + + expect(fileList).toEqual([]); + }); + + }); + + describe('getResourceData', () => { + + it('succeeds in retrieving a file', async () => { + const source = await FileSystemResourceSource.GetInstance(logger, EMPTY_DIRECTORY_CONFIG); + await source.begin(); + const data = await source.getResourceContent('lib/sources/__tests__/data/content/resource1.md'); + await source.end(); + + expect(data).not.toBeNull(); + expect(data).not.toBeUndefined(); + expect(data.length).toBeGreaterThan(600); + }); + }); + + }); + +}); \ No newline at end of file diff --git a/lib/sources/__tests__/github-resource-source.js b/lib/sources/__tests__/github-resource-source.js deleted file mode 100644 index 1c1ecbc..0000000 --- a/lib/sources/__tests__/github-resource-source.js +++ /dev/null @@ -1,220 +0,0 @@ -const {Octokit} = require('@octokit/rest'); -const axios = require('axios'); -const https = require('https'); -const moment = require('moment'); -const nock = require('nock'); -const path = require('path'); -const winston = require('winston'); -const WinstonNullTransport = require('winston-null-transport'); - -const GithubResourceSource = require('../github-resource-source'); - -const logger = winston.createLogger({ - level: 'debug', - format: winston.format.simple(), - transports: [ - new WinstonNullTransport() - ] -}); - -const VALID_CONFIG = { - repoUrl: 'https://github.com/NCIOCPL/r4r-content' -}; - -describe('GithubResourceSource', () => { - describe('constructor', () => { - - const agent = new https.Agent({ - keepAlive: true, - maxSockets: 80 - }); - const client = new Octokit({ - agent: agent - }); - - const axclient = axios.create({ - httpsAgent: agent - }); - - - it('Creates with defaults', () => { - - const source = new GithubResourceSource(logger, client, axclient, VALID_CONFIG); - expect(source.client).toBe(client); - expect(source.axclient).toBe(axclient); - expect(source.owner).toEqual("NCIOCPL"); - expect(source.repo).toEqual("r4r-content"); - expect(source.resourcesPath).toEqual("/resources"); - expect(source.branchName).toBeFalsy(); - }); - - it('Creates with defaults, custom ', () => { - - const source = new GithubResourceSource( - logger, - client, - axclient, - { - ...VALID_CONFIG, - resourcesPath: '/test' - }); - expect(source.client).toBe(client); - expect(source.axclient).toBe(axclient); - expect(source.owner).toEqual("NCIOCPL"); - expect(source.repo).toEqual("r4r-content"); - expect(source.resourcesPath).toEqual("/test"); - expect(source.branchName).toBeFalsy(); - }); - - it('Creates with defaults, branch ', () => { - - const source = new GithubResourceSource( - logger, - client, - axclient, - { - ...VALID_CONFIG, - resourcesPath: '/test', - branchName: 'test' - }); - expect(source.client).toBe(client); - expect(source.axclient).toBe(axclient); - expect(source.owner).toEqual("NCIOCPL"); - expect(source.repo).toEqual("r4r-content"); - expect(source.resourcesPath).toEqual("/test"); - expect(source.branchName).toEqual('test'); - }); - - it('Gracefully throws an error on bad repo url ', () => { - - expect(() => { - const source = new GithubResourceSource( - logger, - client, - axclient, - { - repoUrl: "chicken" - }); - }).toThrowError("Failed to parse github url"); - }); - - it('Gracefully throws an error missing repo url ', () => { - - expect(() => { - const source = new GithubResourceSource( - logger, - client, - axclient, - { - }); - }).toThrowError("You must supply a repository URL"); - }); - - }) - - describe('begin', () => { - - // Minimal test should begin gain functionality in the future. - it('succeeds', async () => { - - const instance = await GithubResourceSource.GetInstance(logger, VALID_CONFIG); - - expect(async ()=> { - await instance.begin(); - }) - .not.toThrow(); - }); - - }); - - describe('end', () => { - - // Minimal test should end gain functionality in the future. - it('succeeds', async () => { - - const instance = await GithubResourceSource.GetInstance(logger, VALID_CONFIG); - - expect(async ()=> { - await instance.end(); - }) - .not.toThrow(); - }); - - }); - - describe('abort', () => { - - // Minimal test should abort gain functionality in the future. - it('succeeds', async () => { - - const instance = await GithubResourceSource.GetInstance(logger, VALID_CONFIG); - - expect(async ()=> { - await instance.abort(); - }) - .not.toThrow(); - }); - - }); - - describe('ValidateConfig', () => { - it('validates config', () => { - const actual = GithubResourceSource.ValidateConfig(VALID_CONFIG); - expect(actual).toEqual([]); - }); - - it('errors config', () => { - const actual = GithubResourceSource.ValidateConfig({}); - expect(actual).toEqual([new Error("You must supply a repository URL")]); - }); - - }) - - describe('GetInstance', () => { - it('gets instance, no auth', async() => { - const actual = await GithubResourceSource.GetInstance(logger, VALID_CONFIG); - expect(actual.client).toBeTruthy(); - expect(actual.axclient).toBeTruthy(); - expect(actual.owner).toEqual("NCIOCPL"); - expect(actual.repo).toEqual("r4r-content"); - expect(actual.resourcesPath).toEqual("/resources"); - expect(actual.branchName).toBeFalsy(); - }); - - - it('gets instance, with auth', async() => { - - //NOTE: the internal git client's authenticate method does - //nothing more then setup an object in memory that adds a - //set of headers before every request. So we can't really check - //that without a mock. Creating a mock for octokit and authenticate - //will be tricky. - const actual = await GithubResourceSource.GetInstance(logger, - { - ...VALID_CONFIG, - authentication: { - type: "token", - token: "SECRET" - } - }); - expect(actual.client).toBeTruthy(); - expect(actual.axclient).toBeTruthy(); - expect(actual.owner).toEqual("NCIOCPL"); - expect(actual.repo).toEqual("r4r-content"); - expect(actual.resourcesPath).toEqual("/resources"); - expect(actual.branchName).toBeFalsy(); - }); - - - it('throws an error if config is not defined', async() => { - try { - const actual = await GithubResourceSource.GetInstance(logger); - } catch (err) { - expect(err).not.toBeNull(); - } - }); - - - }) - -}) \ No newline at end of file diff --git a/lib/sources/filesystem-resource-source.js b/lib/sources/filesystem-resource-source.js new file mode 100644 index 0000000..3bd1655 --- /dev/null +++ b/lib/sources/filesystem-resource-source.js @@ -0,0 +1,138 @@ +const { AbstractRecordSource } = require('loader-pipeline'); +const fs = require('fs/promises'); +const path = require('path'); + + +const MSG_SPECIFY_DIRECTORY = 'You must supply a resource directory URL.'; + +/** + * This class implements a Resource Source wherin the content lives in the + * local file system. + */ +class FileSystemResourceSource extends AbstractRecordSource { + + /** + * Creates a new instance of a FileSystemResourceSource + * @param {logger} logger An instance of a logger. + * @param {Object} param2 A configuration object + * @param {string} param2.resourcesPath The path within the filesystem to the resources. (DEFAULT: /resources) + */ + constructor(logger, { resourcesPath = '/resources' } = {}) { + super(logger); + + if (!resourcesPath || typeof resourcesPath !== 'string' || !(resourcesPath.trim())) { + throw new Error(MSG_SPECIFY_DIRECTORY); + } + + this.resourcesPath = resourcesPath.trim(); + } + + /** + * Called before any resources are loaded. + */ + async begin() { + return; + } + + /** + * Get a collection of resources from this source + */ + async getRecords() { + + let rtnResources = []; + + this.logger.debug("FileSystemResourceSource:getResources - Beginning Fetch"); + + let resourceList; + + // Get list of content. + try { + resourceList = await this.getResourceList(); + } catch (err) { + this.logger.error(`Could not fetch resources from ${this.resourcesPath}.`); + throw err; + } + console.info(`Retrieving ${resourceList.length} resource files.`); + + // Get the content + const results = await Promise.all(resourceList.map(async (item) => await this.getResourceContent(item))); + + return results; + } + + /** + * Internal function to get the list of file in the resources folder + * @return {array} an array of the files to retrieve + */ + async getResourceList() { + + const regEx = /.*\.md$/; + + const candidates = await fs.readdir( this.resourcesPath, { withFileTypes: true} ); + + // Filter the list to only files, and only markdown. + const resourceFileList = candidates + .filter(c => c.isFile() && regEx.test(c.name)) + .map(c => path.join(this.resourcesPath, c.name)); + + return resourceFileList; + } + + /** + * Internal function to retrieve the contents of a specific file. + * + * @param {string} filename + * The name of the file to retrieve. + * @return {string} the file's contents. + */ + async getResourceContent(filename) { + return await fs.readFile(filename, {encoding: 'utf8', flag: 'r'}); + } + + + /** + * Method called after all resources have been loaded + */ + async end() { + return; + } + + /** + * Called upon a fatal loading error. Use this to clean up any items created on startup + */ + async abort() { + return; + } + + /** + * A static method to validate a configuration object against this module type's schema + * @param {Object} config configuration parameters to use for this instance. + * @param {string} config.resourcesPath The path within the filesystem to the resources. (DEFAULT: /resources) + */ + static ValidateConfig(config) { + let errors = []; + + if (!config.resourcesPath || typeof config.resourcesPath !== 'string' || !(config.resourcesPath.trim())) { + errors.push(new Error(MSG_SPECIFY_DIRECTORY)); + } + + return errors; + } + + /** + * A static helper function to get a configured source instance + * @param {Object} logger the logger to use + * @param {Object} config configuration parameters to use for this instance. See FileSystemResourceSource constructor. + */ + static async GetInstance(logger, config) { + + if (!config) { + throw new Error("Config must be supplied."); + } + + return new FileSystemResourceSource(logger, config); + } + +} + +module.exports = FileSystemResourceSource; diff --git a/lib/sources/github-resource-source.js b/lib/sources/github-resource-source.js deleted file mode 100644 index 569d6af..0000000 --- a/lib/sources/github-resource-source.js +++ /dev/null @@ -1,217 +0,0 @@ -const { AbstractRecordSource } = require('loader-pipeline'); -const {Octokit} = require('@octokit/rest'); -const axios = require('axios'); -const https = require('https'); -const matter = require('gray-matter'); -const github_url_parse = require('parse-github-repo-url'); - -/** - * This class implements a Resource Source wherin the content lives in the - * r4rcontent structure of Github. - */ -class GithubResourceSource extends AbstractRecordSource { - - /** - * Creates a new instance of a GithubResourceSource - * @param {logger} logger An instance of a logger. - * @param {Object} client An initialized GitHub client from octokit/rest. - * @param {Object} axclient Axios client for making HTTP(s) requests - * @param {Object} param2 A configuration object - * @param {string} param2.repoUrl The URL for the source github repo - * @param {string} param2.resourcesPath The path within the repo to the resources. (DEFAULT: /resources) - * @param {string} param2.branchName The name of the branch to use. (DEFAULT: master) - */ - constructor(logger, client, axclient, { repoUrl = false, resourcesPath = '/resources', branchName = false } = {}) { - super(logger); - - if (repoUrl === false) { - throw new Error("You must supply a repository URL"); - } - - // Set Github Client - this.client = client; - - // Set HTTP(S) Agent - this.axclient = axclient; - - //break up the repo url - try { - const [owner, repo] = github_url_parse(repoUrl); - this.owner = owner; - this.repo = repo; - } catch (err) { - this.logger.error(`Could not parse repoUrl, ${repoUrl}`); - throw new Error("Failed to parse github url"); - } - - this.resourcesPath = resourcesPath; - - this.branchName = branchName; - - } - - /** - * Called before any resources are loaded. - */ - async begin() { - return; - } - - /** - * Get a collection of resources from this source - */ - async getRecords() { - - let rtnResources = []; - - this.logger.debug("GithubResourceSource:getResources - Beginning Fetch"); - - let resourcesList; - - //Get list of content from github - try { - resourcesList = await this.getResourceList(); - } catch (err) { - this.logger.error(`Could not fetch resources from GitHub https://github.com/${this.owner}/${this.repo}${this.resourcesPath}`); - throw err; - } - - //download the content - const results = await Promise.all( - resourcesList.map(async (item) => { - rtnResources.push(await this.getResourceContent(item)); - }) - ); - - this.logger.debug("GithubResourceSource:getResources - Completed Fetch"); - - return rtnResources; - } - - /** - * Internal function to get the list of resources in the resources folder - * @return {array} an array of the URLs to download - */ - async getResourceList() { - - let options = { - owner: this.owner, - repo: this.repo, - path: this.resourcesPath, - } - - if(this.branchName) { - options = { - ...options, - ref: this.branchName - } - } - - const result = await this.client.repos.getContent(options); - - const regEx = /.*\.md$/; - - const downloadList = result.data - .filter(r => r.type === 'file' && regEx.test(r.download_url)) - .map(r => r.download_url); - - return downloadList; - } - - /** - * Downloads a resource from github. - * @param {*} contentUrl The raw url for the content - * @returns {Object} the resource - */ - async getResourceContent(contentUrl) { - - let response; - - try { - response = await this.axclient.get(contentUrl, { - responseType: 'text' - }); - } catch (err) { - this.logger.error(`Could not fetch ${contentUrl}`); - throw err; - } - - return response.data; - } - - /** - * Method called after all resources have been loaded - */ - async end() { - return; - } - - /** - * Called upon a fatal loading error. Use this to clean up any items created on startup - */ - async abort() { - return; - } - - /** - * A static method to validate a configuration object against this module type's schema - * @param {Object} config configuration parameters to use for this instance. - * @param {string} config.repoUrl The URL for the source github repo - * @param {string} config.resourcesPath The path within the repo to the resources. (DEFAULT: /resources) - * @param {string} param2.branchName The name of the branch to use. (DEFAULT: master) - */ - static ValidateConfig(config) { - let errors = []; - - if (!config.repoUrl) { - errors.push(new Error("You must supply a repository URL")); - } - - return errors; - } - - /** - * A static helper function to get a configured source instance - * @param {Object} logger the logger to use - * @param {Object} config configuration parameters to use for this instance. See GithubResourceSource constructor. - */ - static async GetInstance(logger, config) { - - if (!config) { - throw new Error("Config must be supplied"); - } - - //TODO: Find a better way to manage the agent so there can be one agent per - //application. (and thus one pool of sockets) - const agent = new https.Agent({ - keepAlive: true, - maxSockets: 80 - }); - - //Get instance of axios with our custom https agent - const axiosInstance = axios.create({ - httpsAgent: agent - }) - - const options = { - // Since we will be scraping the GitHub site we will be making a lot of calls - // the following options will make sure that we do not kill the computer's - // sockets that it runs on. - request: { - agent - } - }; - - // We will probably need to authenticate to get around the rate limits - // they are based on IP address, which for us *could* be a major limiter. - if (config['authentication'] != null) { - options.auth = config['authentication'].token; - } - - const client = new Octokit(options); - - return new GithubResourceSource(logger, client, axiosInstance, config); - } -} - -module.exports = GithubResourceSource; \ No newline at end of file diff --git a/lib/transformers/__tests__/netlifymd-resource-transformer.js b/lib/transformers/__tests__/netlifymd-resource-transformer.js index f47922d..3840faa 100644 --- a/lib/transformers/__tests__/netlifymd-resource-transformer.js +++ b/lib/transformers/__tests__/netlifymd-resource-transformer.js @@ -1,20 +1,13 @@ -const axios = require('axios'); -const fs = require('fs'); -const https = require('https'); -const nock = require('nock'); +const fsp = require('fs/promises'); const winston = require('winston'); const WinstonNullTransport = require('winston-null-transport'); const path = require('path'); -const util = require('util'); const unified = require('unified'); const markdown = require('remark-parse'); const remark2rehype = require('remark-rehype'); const html = require('rehype-stringify'); const minify = require('rehype-preset-minify'); -// Convert fs.readFile into Promise version of same -const readFileAsync = util.promisify(fs.readFile); - const NetlifyMdResourceTransformer = require('../netlifymd-resource-transformer'); @@ -28,11 +21,11 @@ const logger = winston.createLogger({ const VALID_CONFIG = { - mappingUrls: { - docs: "https://example.org/bryanpizzillo/r4rcontent/master/data/docs.json", - researchAreas: "https://example.org/bryanpizzillo/r4rcontent/master/data/researchAreas.json", - researchTypes: "https://example.org/bryanpizzillo/r4rcontent/master/data/researchTypes.json", - toolTypes: "https://example.org/bryanpizzillo/r4rcontent/master/data/toolTypes.json" + mappingFiles: { + docs: "../mapping/docs.json", + researchAreas: "../mapping/researchAreas.json", + researchTypes: "../mapping/researchTypes.json", + toolTypes: "../mapping/toolTypes.json" } }; @@ -44,13 +37,6 @@ const TOOLTYPES_EXPECTED = require('./data/facets/toolTypes.expected.json'); const TEST_FILE_PATH = path.join(__dirname, 'data', 'facets'); -const httpAdapterPath = path.join( - path.dirname(require.resolve('axios')), - 'lib/adapters/http' -); -const httpAdapter = require(httpAdapterPath); -axios.defaults.adapter = httpAdapter; - const DEFAULT_MDPROCESSOR = unified() .use(markdown) .use(remark2rehype) @@ -62,45 +48,38 @@ describe('NetlifyMdResourceTransformer', () => { describe('Constructor', () => { it('throws errors on no mappings', () => { - const axclient = axios.create({}); expect(() => { new NetlifyMdResourceTransformer( logger, - axclient, DEFAULT_MDPROCESSOR, - {...VALID_CONFIG, mappingUrls: null } + {...VALID_CONFIG, mappingFiles: null } ) - }).toThrow("Mapping URLs are not valid"); + }).toThrow("Mapping Files are not valid"); }) it('throws errors on invalid mappings', () => { - const axclient = axios.create({}); expect(() => { new NetlifyMdResourceTransformer( logger, - axclient, DEFAULT_MDPROCESSOR, - {...VALID_CONFIG, mappingUrls: { docs: "string", researchAreas: {}} } + {...VALID_CONFIG, mappingFiles: { docs: "string", researchAreas: {}} } ) - }).toThrow("Mapping URLs are not valid"); + }).toThrow("Mapping Files are not valid"); }) it('creates as expected', () => { - const axclient = axios.create({}); const xformer = new NetlifyMdResourceTransformer( logger, - axclient, DEFAULT_MDPROCESSOR, VALID_CONFIG ) expect(xformer).not.toBeNull(); expect(xformer.logger).toBe(logger); - expect(xformer.axclient).toBe(axclient); - expect(xformer.mappingUrls).toBe(VALID_CONFIG.mappingUrls); + expect(xformer.mappingFiles).toBe(VALID_CONFIG.mappingFiles); }) }) @@ -111,8 +90,7 @@ describe('NetlifyMdResourceTransformer', () => { it('returns an instance', async () => { const transformer = await NetlifyMdResourceTransformer.GetInstance(logger, VALID_CONFIG) expect(transformer).toBeInstanceOf(NetlifyMdResourceTransformer); - expect(transformer.axclient).not.toBeNull(); - expect(transformer.mappingUrls).toMatchObject(VALID_CONFIG.mappingUrls); + expect(transformer.mappingFiles).toMatchObject(VALID_CONFIG.mappingFiles); expect(transformer.logger).toBe(logger); }) }) @@ -131,24 +109,24 @@ describe('NetlifyMdResourceTransformer', () => { }) it('returns an error when invalid', () => { - const expected = [new Error("Config is not valid - mappingUrls is missing or invalid")] + const expected = [new Error("Config is not valid - mappingFiles is missing or invalid")] const errors = NetlifyMdResourceTransformer.ValidateConfig({}); expect(errors).toEqual(expect.arrayContaining(expected)); }) it('returns an error when config has invalid mapping urls', () => { - const expected = [new Error("Config is not valid - mappingUrls is missing or invalid")] - const errors = NetlifyMdResourceTransformer.ValidateConfig({ mappingUrls: "bad"}); + const expected = [new Error("Config is not valid - mappingFiles is missing or invalid")] + const errors = NetlifyMdResourceTransformer.ValidateConfig({ mappingFiles: "bad"}); expect(errors).toEqual(expect.arrayContaining(expected)); }) it('returns an error when extra options', () => { - const expected = [new Error("Config is not valid - mappingUrls is missing or invalid")] - const errors = NetlifyMdResourceTransformer.ValidateConfig({ foo: {}, mappingUrls: {} }); + const expected = [new Error("Config is not valid - mappingFiles is missing or invalid")] + const errors = NetlifyMdResourceTransformer.ValidateConfig({ foo: {}, mappingFiles: {} }); expect(errors).toEqual(expect.arrayContaining(expected)); }) - it('returns an error when mappingUrls bad', () => { + it('returns an error when mappingFiles bad', () => { const expected = [ new Error("Mapping config for docs is invalid"), new Error("Mapping config for researchAreas is invalid"), @@ -157,7 +135,7 @@ describe('NetlifyMdResourceTransformer', () => { ] const errors = NetlifyMdResourceTransformer.ValidateConfig( { - mappingUrls: { + mappingFiles: { docs: false, researchAreas: false, researchTypes: false, @@ -173,89 +151,74 @@ describe('NetlifyMdResourceTransformer', () => { describe('getMappingFile', () => { it('fetches a single file', async() => { - let scope = nock('https://example.org') - .get("/bryanpizzillo/r4rcontent/master/data/docs.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'docs.json')) + + const testFile = path.join(TEST_FILE_PATH, 'docs.json'); const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, VALID_CONFIG ); - await transformer.getMappingFile("test", "https://example.org/bryanpizzillo/r4rcontent/master/data/docs.json"); + await transformer.getMappingFile("test", testFile); expect(transformer.facetMaps).toMatchObject({test: DOCS_EXPECTED}); - }) + }); + + it('throws on non-existing file', async() => { - it('throws on 404', async() => { - let scope = nock('https://example.org') - .get("/bryanpizzillo/r4rcontent/master/data/foo.json") - .reply(404); + const testFile = path.join(TEST_FILE_PATH, 'non-existing-file.json'); const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, VALID_CONFIG ); expect.assertions(1); - try { - await transformer.getMappingFile("test", "https://example.org/bryanpizzillo/r4rcontent/master/data/foo.json"); - } catch (err) { - expect(err).toMatchObject({ - message: "Request failed with status code 404" - }); - } - }) + await expect(transformer.getMappingFile('test', testFile)) + .rejects.toThrow('ENOENT: no such file or directory'); + + }); it('throws on invalid json', async() => { - let scope = nock('https://example.org') - .get("/bryanpizzillo/r4rcontent/master/data/badData.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'badData.json')); + + const testFile = path.join(TEST_FILE_PATH, 'badData.json'); const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, VALID_CONFIG ); expect.assertions(1); - try { - await transformer.getMappingFile("test", "https://example.org/bryanpizzillo/r4rcontent/master/data/badData.json"); - } catch (err) { - expect(err).toMatchObject({ - message: "Could not load json map" - }); - } - }) + await expect(transformer.getMappingFile("test", testFile)) + .rejects.toThrow('is not valid JSON'); + }); }) describe('begin', () => { - it('loads the mapping files from web', async () => { + it('loads the mapping files', async () => { - let scope = nock('https://example.org') - .get("/bryanpizzillo/r4rcontent/master/data/docs.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'docs.json')) - .get("/bryanpizzillo/r4rcontent/master/data/researchAreas.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'researchAreas.json')) - .get("/bryanpizzillo/r4rcontent/master/data/researchTypes.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'researchTypes.json')) - .get("/bryanpizzillo/r4rcontent/master/data/toolTypes.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'toolTypes.json')) + const config = { + ...VALID_CONFIG, + mappingFiles: { + ...VALID_CONFIG.mappingFiles, + docs: path.join(TEST_FILE_PATH, 'docs.json'), + researchAreas: path.join(TEST_FILE_PATH, 'researchAreas.json'), + researchTypes: path.join(TEST_FILE_PATH, 'researchTypes.json'), + toolTypes: path.join(TEST_FILE_PATH, 'toolTypes.json') + } + } const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, - VALID_CONFIG + config ); await transformer.begin(); @@ -267,24 +230,24 @@ describe('NetlifyMdResourceTransformer', () => { toolTypes: TOOLTYPES_EXPECTED }); - }) + }); it('throws an error when an error occurs while loading', async () => { - let scope = nock('https://example.org') - .get("/bryanpizzillo/r4rcontent/master/data/docs.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'docs.json')) - .get("/bryanpizzillo/r4rcontent/master/data/researchAreas.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'researchAreas.json')) - .get("/bryanpizzillo/r4rcontent/master/data/researchTypes.json") - .reply(404) - .get("/bryanpizzillo/r4rcontent/master/data/toolTypes.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'badData.json')) + const config = { + ...VALID_CONFIG, + mappingFiles: { + ...VALID_CONFIG.mappingFiles, + docs: path.join(TEST_FILE_PATH, 'docs.json'), + researchAreas: path.join(TEST_FILE_PATH, 'researchAreas.json'), + researchTypes: path.join(TEST_FILE_PATH, 'bad-file-name.json'), + toolTypes: path.join(TEST_FILE_PATH, 'toolTypes.json') + } + } const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, - VALID_CONFIG + config ); expect.assertions(1); @@ -305,7 +268,6 @@ describe('NetlifyMdResourceTransformer', () => { it('ends correctly', async () => { const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, VALID_CONFIG ); @@ -318,7 +280,6 @@ describe('NetlifyMdResourceTransformer', () => { describe('explodeToolSubtypeFacet', () => { const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, VALID_CONFIG ); @@ -356,7 +317,6 @@ describe('NetlifyMdResourceTransformer', () => { const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, VALID_CONFIG ); @@ -407,27 +367,27 @@ describe('NetlifyMdResourceTransformer', () => { it('transforms the resource', async () => { - let scope = nock('https://example.org') - .get("/bryanpizzillo/r4rcontent/master/data/docs.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'docs.json')) - .get("/bryanpizzillo/r4rcontent/master/data/researchAreas.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'researchAreas.json')) - .get("/bryanpizzillo/r4rcontent/master/data/researchTypes.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'researchTypes.json')) - .get("/bryanpizzillo/r4rcontent/master/data/toolTypes.json") - .replyWithFile(200, path.join(TEST_FILE_PATH, 'toolTypes.json')) + const config = { + ...VALID_CONFIG, + mappingFiles: { + ...VALID_CONFIG.mappingFiles, + docs: path.join(TEST_FILE_PATH, 'docs.json'), + researchAreas: path.join(TEST_FILE_PATH, 'researchAreas.json'), + researchTypes: path.join(TEST_FILE_PATH, 'researchTypes.json'), + toolTypes: path.join(TEST_FILE_PATH, 'toolTypes.json') + } + } //Load our MD file. - const rawResource = await readFileAsync(path.join(TEST_FILE_PATH, '..', 'full_item.md')); + const rawResource = await fsp.readFile(path.join(TEST_FILE_PATH, '..', 'full_item.md')); //Load expected object const expResource = require('./data/full_item.expected.json'); const transformer = new NetlifyMdResourceTransformer( logger, - axios.create({}), DEFAULT_MDPROCESSOR, - VALID_CONFIG + config ); await transformer.begin(); diff --git a/lib/transformers/netlifymd-resource-transformer.js b/lib/transformers/netlifymd-resource-transformer.js index 43e9fb0..d8ebf5b 100644 --- a/lib/transformers/netlifymd-resource-transformer.js +++ b/lib/transformers/netlifymd-resource-transformer.js @@ -1,7 +1,6 @@ const { AbstractRecordTransformer } = require('loader-pipeline'); -const axios = require('axios'); +const fsp = require('fs/promises'); const matter = require('gray-matter'); -const https = require('https'); const unified = require('unified'); const markdown = require('remark-parse'); const remark2rehype = require('remark-rehype'); @@ -14,23 +13,21 @@ const html = require('rehype-stringify'); class NetlifyMdResourceTransformer extends AbstractRecordTransformer { /** - * + * * @param {Object} logger Logger to use for logging - * @param {Object} axclient Axios client for making HTTP(s) requests * @param {Object} unifiedMd2HtmlProcessor Unified processor configured to convert markdown to HTML * @param {Object} param2 configuration - * @param {Object} param2.mappingUrls an object representing the location of that facet mapping files - * @param {string} param2.mappingUrls.docs the location of the Divisions, offices and centers map - * @param {string} param2.mappingUrls.researchAreas the location of the research areas map - * @param {string} param2.mappingUrls.researchTypes the location of the researchTypes map - * @param {string} param2.mappingUrls.toolTypes the location of the tool types map + * @param {Object} param2.mappingFiles an object representing the location of that facet mapping files + * @param {string} param2.mappingFiles.docs the location of the Divisions, offices and centers map + * @param {string} param2.mappingFiles.researchAreas the location of the research areas map + * @param {string} param2.mappingFiles.researchTypes the location of the researchTypes map + * @param {string} param2.mappingFiles.toolTypes the location of the tool types map */ constructor( - logger, - axclient, + logger, unifiedMd2HtmlProcessor, { - mappingUrls = { + mappingFiles: mappingFiles = { docs: false, researchAreas: false, researchTypes: false, @@ -41,53 +38,42 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { super(logger); //Check and see if the mapping URLs are a valid structure. - //NOTE: this is not checking for 404s - if (!( mappingUrls && + //NOTE: this is not checking for files missing from the filesystem. + if (!( mappingFiles && ['docs', 'researchAreas', 'researchTypes', 'toolTypes'] .reduce( - (ac, cv) => ac = ac && (mappingUrls[cv] && typeof mappingUrls[cv] === 'string'), + (ac, cv) => ac = ac && (mappingFiles[cv] && typeof mappingFiles[cv] === 'string'), true ) )) { - throw new Error("Mapping URLs are not valid"); + throw new Error("Mapping Files are not valid"); } - this.mappingUrls = mappingUrls; - this.axclient = axclient; + this.mappingFiles = mappingFiles; this.mdProcessor = unifiedMd2HtmlProcessor; //To be filled in on begin this.facetMaps = {} - - } /** * Gets a single mapping file * @param {*} key The key to store in the facetMaps - * @param {*} url The url of the mapping file + * @param {*} path The path to the mapping file */ - async getMappingFile(key, url) { - let mapData; + async getMappingFile(key, path) { try { - mapData = await this.axclient.get(url, { - responseType: 'json' - }) - - // Axios swallows parse errors so the best way we can detect invalid JSON - // is to make sure it is an object. If it did not parse it will be just a - // string. - if (!mapData.data || typeof mapData.data !== 'object') { - this.logger.error(`Returned JSON from ${url} is not valid `); - throw new Error("Could not load json map"); - } + //const rawData = await this.fsp.readFile(path, {encoding: 'utf8', flag: 'r'}); + const rawData = await fsp.readFile(path, 'utf8'); + + const mapData = JSON.parse(rawData); // TODO: We should probably validate the map against a schema // Convert the data to a format that supports easy lookups, and // also uses the right keys for the facet - this.facetMaps[key] = mapData.data.reduce( + this.facetMaps[key] = mapData.reduce( (obj, item) => { obj[item.value] = { key: item.value.toLowerCase(), label: item.label } return obj; @@ -95,10 +81,10 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { ); } catch (err) { - this.logger.error(`Cannot fetch mapping ${key} located at ${url}.`) + this.logger.error(`Cannot fetch mapping ${key} located at ${path}.`); throw err; } - + } /** @@ -107,31 +93,31 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { async begin() { this.logger.debug("NetlifyMdResourceTransformer:begin - Begin Begin"); - const jsonFetchers = Object.keys(this.mappingUrls).map(async key => { - await this.getMappingFile(key, this.mappingUrls[key]); - }) + const jsonFetchers = Object.keys(this.mappingFiles).map(async key => { + await this.getMappingFile(key, this.mappingFiles[key]); + }) await Promise.all(jsonFetchers); - this.logger.debug("NetlifyMdResourceTransformer:begin - End Begin"); + this.logger.debug("NetlifyMdResourceTransformer:begin - End Begin"); } /** * Maps data from raw resource to facet. - * @param {*} facet - * @param {*} incoming + * @param {*} facet + * @param {*} incoming */ - mapFacet(facet, incoming) { + mapFacet(facet, incoming) { //No map, skip if (!incoming[facet] || !Array.isArray(incoming[facet])) { return []; } - + const facets = incoming[facet].map((facetTag) => { - + //Since we do not have multi-select capability in Netlify CMS yet, - //we made the facets a lists of facet objects. For example, + //we made the facets a lists of facet objects. For example, //docs: [] contains an array of objects that look like {"doc": ""} // // So we need to grab the doc out. In hindsight, we should have made the object @@ -158,7 +144,7 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { /** * This is a quick and dirty method to validate that the transformed resource * is a valid resource - * @param {*} resource + * @param {*} resource */ validateResource(resource){ // Quick and Dirty Validation of our object @@ -168,12 +154,12 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { } /** - * This converts a raw ToolType facet item into a + * This converts a raw ToolType facet item into a * object - * @param {*} facetItem + * @param {*} facetItem */ explodeToolTypeFacet(facetItem) { - + if (facetItem.key.includes('/')) { //This is a subtyped item let typeSubKey = facetItem.key.split('/'); @@ -197,12 +183,12 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { } /** - * This converts a raw ToolType facet item into a + * This converts a raw ToolType facet item into a * subtype object - * @param {*} facetItem + * @param {*} facetItem */ explodeToolSubtypeFacet(facetItem) { - + if (facetItem.key.includes('/')) { //This is a subtyped item let typeSubKey = facetItem.key.split('/'); @@ -226,7 +212,7 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { } /** - * Transforms the resource + * Transforms the resource * @param {Object} data the object to be transformed * @returns the transformed object */ @@ -244,7 +230,7 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { try { //Map to object we want to push to ES resource = { - ...document.data, + ...document.data, body: String(await this.mdProcessor.process(document.content)), description: String(await this.mdProcessor.process(document.data.description)), // NOTE: it is poc in the source content. @@ -292,7 +278,7 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { */ async abort() { return; - } + } /** * A static method to validate a configuration object against this module type's schema @@ -305,14 +291,14 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { if (!config || typeof config !== 'object') { errors.push(new Error("Config is not object or null")); } else if ( - Object.keys(config).length !== 1 || - !config["mappingUrls"] || - typeof config.mappingUrls !== "object" + Object.keys(config).length !== 1 || + !config["mappingFiles"] || + typeof config.mappingFiles !== "object" ) { - errors.push(new Error("Config is not valid - mappingUrls is missing or invalid")); + errors.push(new Error("Config is not valid - mappingFiles is missing or invalid")); } else { for(let key of ['docs', 'researchAreas', 'researchTypes', 'toolTypes']) { - if (!config.mappingUrls[key] || typeof config.mappingUrls[key] !== 'string') { + if (!config.mappingFiles[key] || typeof config.mappingFiles[key] !== 'string') { errors.push(new Error(`Mapping config for ${key} is invalid`)); } } @@ -324,30 +310,17 @@ class NetlifyMdResourceTransformer extends AbstractRecordTransformer { /** * A static helper function to get a configured source instance * @param {Object} logger the logger to use - * @param {Object} agent the http agent to use for connections * @param {Object} config configuration parameters to use for this instance. See GithubResourceSource constructor. */ static async GetInstance(logger, config) { - //TODO: Find a better way to manage the agent so there can be one agent per - //application. (and thus one pool of sockets) - const agent = new https.Agent({ - keepAlive: true, - maxSockets: 80 - }); - - //Get instance of axios with our custom https agent - const axiosInstance = axios.create({ - httpsAgent: agent - }) - const unifiedMd2HtmlProcessor = unified() .use(markdown) .use(remark2rehype) .use(html); - return new NetlifyMdResourceTransformer(logger, axiosInstance, unifiedMd2HtmlProcessor, config); - } + return new NetlifyMdResourceTransformer(logger, unifiedMd2HtmlProcessor, config); + } } module.exports = NetlifyMdResourceTransformer; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 993fe8f..579da06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,30 +1,27 @@ { - "name": "r4rimporter", - "version": "1.1.0", + "name": "r4r-loader", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "r4rimporter", - "version": "1.1.0", + "name": "r4r-loader", + "version": "3.0.0", "license": "ISC", "dependencies": { - "@elastic/elasticsearch": "^7.17.0", - "@octokit/rest": "^19.0.4", - "axios": "^0.27.2", - "config": "^3.3.8", - "elastic-tools": "git+https://github.com/nciocpl/elastic-tools.git#v2.0.0", + "@elastic/elasticsearch": "^7.17.13", + "config": "^3.3.11", + "elastic-tools": "github:nciocpl/elastic-tools#v3.0.0", "gray-matter": "^4.0.3", "loader-pipeline": "git+https://github.com/nciocpl/loader-pipeline.git#v1.1.0", - "moment": "^2.29.4", - "parse-github-repo-url": "^1.4.1", - "winston": "^3.8.2" + "moment": "^2.30.1", + "winston": "^3.12.0" }, "devDependencies": { - "@types/jest": "^29.0.1", - "@types/node": "^16.11.58", - "jest": "^29.0.3", - "nock": "^13.2.9", + "@types/jest": "^29.5.12", + "@types/node": "^16.18.89", + "jest": "^29.7.0", + "nock": "^13.5.4", "rehype-preset-minify": "^5.1.0", "rehype-stringify": "^8.0.0", "remark-parse": "^9.0.0", @@ -34,64 +31,65 @@ "winston-null-transport": "git+https://github.com/NCIOCPL/winston-null-transport.git#1.0.0" }, "engines": { - "node": "^16" + "node": ">=20.11.0 <21.0.0" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", - "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", - "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.0", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0", - "convert-source-map": "^1.7.0", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -101,271 +99,194 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, "dependencies": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", - "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", - "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", - "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -435,12 +356,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -537,12 +458,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -552,34 +473,34 @@ } }, "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", - "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.0", - "@babel/types": "^7.19.0", - "debug": "^4.1.0", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -587,13 +508,13 @@ } }, "node_modules/@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -607,9 +528,9 @@ "dev": true }, "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "engines": { "node": ">=0.1.90" } @@ -625,9 +546,9 @@ } }, "node_modules/@elastic/elasticsearch": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.17.0.tgz", - "integrity": "sha512-5QLPCjd0uLmLj1lSuKSThjNpq39f6NmlTy9ROLFwG5gjyTgpwSqufDeYG/Fm43Xs05uF7WcscoO7eguI3HuuYA==", + "version": "7.17.13", + "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.17.13.tgz", + "integrity": "sha512-GMXtFVqd3FgUlTtPL/GDc+3GhwvfZ0kSuegCvVVqb58kd+0I6U6u7PL8QFRLHtwzqLEBmYLdwr4PRkBAWKGlzA==", "dependencies": { "debug": "^4.3.1", "hpagent": "^0.1.1", @@ -669,16 +590,16 @@ } }, "node_modules/@jest/console": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.0.3.tgz", - "integrity": "sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -756,37 +677,37 @@ } }, "node_modules/@jest/core": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.0.3.tgz", - "integrity": "sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@jest/console": "^29.0.3", - "@jest/reporters": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.0.0", - "jest-config": "^29.0.3", - "jest-haste-map": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-regex-util": "^29.0.0", - "jest-resolve": "^29.0.3", - "jest-resolve-dependencies": "^29.0.3", - "jest-runner": "^29.0.3", - "jest-runtime": "^29.0.3", - "jest-snapshot": "^29.0.3", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", - "jest-watcher": "^29.0.3", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.0.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -802,15 +723,6 @@ } } }, - "node_modules/@jest/core/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/core/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -869,18 +781,6 @@ "node": ">=8" } }, - "node_modules/@jest/core/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -894,89 +794,89 @@ } }, "node_modules/@jest/environment": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.0.3.tgz", - "integrity": "sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.0.3" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.0.3.tgz", - "integrity": "sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { - "expect": "^29.0.3", - "jest-snapshot": "^29.0.3" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.0.3.tgz", - "integrity": "sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { - "jest-get-type": "^29.0.0" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.0.3.tgz", - "integrity": "sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { - "@jest/types": "^29.0.3", - "@sinonjs/fake-timers": "^9.1.2", + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.0.3", - "jest-mock": "^29.0.3", - "jest-util": "^29.0.3" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.0.3.tgz", - "integrity": "sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.0.3", - "@jest/expect": "^29.0.3", - "@jest/types": "^29.0.3", - "jest-mock": "^29.0.3" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.0.3.tgz", - "integrity": "sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -984,17 +884,16 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3", - "jest-worker": "^29.0.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", "v8-to-istanbul": "^9.0.1" }, "engines": { @@ -1009,15 +908,6 @@ } } }, - "node_modules/@jest/reporters/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/reporters/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1076,18 +966,6 @@ "node": ">=8" } }, - "node_modules/@jest/reporters/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/reporters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1101,24 +979,24 @@ } }, "node_modules/@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.24.1" + "@sinclair/typebox": "^0.27.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/source-map": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.0.0.tgz", - "integrity": "sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" }, @@ -1127,13 +1005,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.0.3.tgz", - "integrity": "sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { - "@jest/console": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -1142,14 +1020,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.0.3.tgz", - "integrity": "sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.0.3", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.0.3", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -1157,26 +1035,26 @@ } }, "node_modules/@jest/transform": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.0.3.tgz", - "integrity": "sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.0.3", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", + "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.0.3", - "jest-regex-util": "^29.0.0", - "jest-util": "^29.0.3", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" + "write-file-atomic": "^4.0.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -1253,12 +1131,12 @@ } }, "node_modules/@jest/types": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.0.3.tgz", - "integrity": "sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -1340,265 +1218,103 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@octokit/auth-token": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", - "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", - "dependencies": { - "@octokit/types": "^7.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz", - "integrity": "sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA==", - "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^7.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/endpoint": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", - "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", - "dependencies": { - "@octokit/types": "^7.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/endpoint/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@octokit/graphql": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", - "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", - "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^7.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.10.0.tgz", - "integrity": "sha512-wPQDpTyy35D6VS/lekXDaKcxy6LI2hzcbmXBnP180Pdgz3dXRzoHdav0w09yZzzWX8HHLGuqwAeyMqEPtWY2XA==" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.3.0.tgz", - "integrity": "sha512-4V8hWMoXuxb03xPs3s3RjUb5Bzx4HmVRhG+gvbO08PB48ag6G8mk6/HDFKlAXz9XEorDIkc0pXcXnaOz8spHgg==", - "dependencies": { - "@octokit/types": "^7.4.0" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=4" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.6.0.tgz", - "integrity": "sha512-IAuT/e1gIUVszNmV+vfXNxa6xXI9dlghhBDqLGEmjz3so9sHqOlXN4R5gWcCRJkt4mum4NCaNjUk17yTrK76Rw==", - "dependencies": { - "@octokit/types": "^7.4.0", - "deprecation": "^2.3.1" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/request": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", - "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", - "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^7.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/request-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", - "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", - "dependencies": { - "@octokit/types": "^7.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/request/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@octokit/rest": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz", - "integrity": "sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA==", - "dependencies": { - "@octokit/core": "^4.0.0", - "@octokit/plugin-paginate-rest": "^4.0.0", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.4.0.tgz", - "integrity": "sha512-ln1GW0p72+P8qeRjHGj0wyR5ePy6slqvczveOqonMk1w1UWua6UgrkwFzv6S0vKWjSqt/ijYXF1ehNVRRRSvLA==", - "dependencies": { - "@octokit/openapi-types": "^13.10.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@sinclair/typebox": { - "version": "0.24.41", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.41.tgz", - "integrity": "sha512-TJCgQurls4FipFvHeC+gfAzb+GGstL0TDwYJKQVtTeSvJIznWzP7g3bAd5gEBlr8+bIxqnWS9VGVWREDhmE8jA==", + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.0" } }, "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "node_modules/@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==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@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==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -1606,18 +1322,18 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.1.tgz", - "integrity": "sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -1648,9 +1364,9 @@ } }, "node_modules/@types/jest": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.0.1.tgz", - "integrity": "sha512-CAZrjLRZs4xEdIrfrdV74xK1Vo/BKQZwUcjJv3gp6gMeV3BsVxMnXTcgtYOKyphT4DPPo7jxVEVhuwJTQn3oPQ==", + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -1667,15 +1383,9 @@ } }, "node_modules/@types/node": { - "version": "16.11.58", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.58.tgz", - "integrity": "sha512-uMVxJ111wpHzkx/vshZFb6Qni3BOMnlWLq7q9jrwej7Yw/KvjsEbpxCCxw+hLKxexFMc8YmpG8J9tnEe/rKsIg==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", + "version": "16.18.89", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.89.tgz", + "integrity": "sha512-QlrE8QI5z62nfnkiUZysUsAaxWaTMoGqFVcB3PvK1WxJ0c699bacErV4Fabe9Hki6ZnaHalgzihLbTl2d34XfQ==", "dev": true }, "node_modules/@types/stack-utils": { @@ -1684,6 +1394,11 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + }, "node_modules/@types/unist": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", @@ -1720,10 +1435,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -1741,43 +1477,16 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/babel-jest": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.0.3.tgz", - "integrity": "sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "dependencies": { - "@jest/transform": "^29.0.3", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.0.2", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -1875,10 +1584,26 @@ "node": ">=8" } }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz", - "integrity": "sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -1914,12 +1639,12 @@ } }, "node_modules/babel-preset-jest": { - "version": "29.0.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz", - "integrity": "sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^29.0.2", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -1984,11 +1709,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2012,9 +1732,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -2024,13 +1744,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -2073,9 +1797,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001399", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", - "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", + "version": "1.0.30001597", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", + "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", "dev": true, "funding": [ { @@ -2085,6 +1809,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -2098,6 +1826,20 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -2154,9 +1896,9 @@ "dev": true }, "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, "node_modules/clean-css": { @@ -2172,35 +1914,17 @@ } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/co": { @@ -2214,9 +1938,9 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "node_modules/color": { @@ -2259,17 +1983,6 @@ "text-hex": "1.0.x" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/comma-separated-tokens": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", @@ -2287,23 +2000,111 @@ "dev": true }, "node_modules/config": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/config/-/config-3.3.8.tgz", - "integrity": "sha512-rFzF6VESOdp7wAXFlB9IOZI4ouL05g3A03v2eRcTHj2JBQaTNJ40zhAUl5wRbWHqLZ+uqp/7OE0BWWtAVgrong==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/config/-/config-3.3.11.tgz", + "integrity": "sha512-Dhn63ZoWCW5EMg4P0Sl/XNsj/7RLiUIA1x1npCy+m2cRwRHzLnt3UtYtxRDMZW/6oOMdWhCzaGYkOcajGgrAOA==", "dependencies": { - "json5": "^2.2.1" + "json5": "^2.2.3" }, "engines": { "node": ">= 10.0.0" } }, "node_modules/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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/cross-spawn": { @@ -2337,33 +2138,28 @@ } }, "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2374,36 +2170,37 @@ } }, "node_modules/diff-sequences": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.0.0.tgz", - "integrity": "sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/elastic-tools": { - "version": "1.1.2", - "resolved": "git+ssh://git@github.com/nciocpl/elastic-tools.git#4aef3c176dfef27fafc4a3ee74b83bf21242bff3", + "version": "3.0.0", + "resolved": "git+ssh://git@github.com/nciocpl/elastic-tools.git#3459d58209bfb878be803ab5d3b7c7bfb3a78adf", "license": "CC0-1.0", "dependencies": { "@elastic/elasticsearch": "^7.17.0", "moment": "^2.29.1" }, "engines": { - "node": "^16" + "node": ">=20.0.0 <21.0.0", + "npm": ">=10.0.0 <11.0.0" } }, "node_modules/electron-to-chromium": { - "version": "1.4.248", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.248.tgz", - "integrity": "sha512-qShjzEYpa57NnhbW2K+g+Fl+eNoDvQ7I+2MRwWnU6Z6F0HhXekzsECCLv+y2OJUsRodjqoSfwHkIX42VUFtUzg==", + "version": "1.4.703", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.703.tgz", + "integrity": "sha512-094ZZC4nHXPKl/OwPinSMtLN9+hoFkdfQGKnvXbY+3WEAYtVDpz9UhJIViiY6Zb8agvqxiaJzNG9M+pRZWvSZw==", "dev": true }, "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "engines": { "node": ">=12" @@ -2433,9 +2230,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -2444,7 +2241,7 @@ "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -2495,16 +2292,16 @@ } }, "node_modules/expect": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.0.3.tgz", - "integrity": "sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.0.3", - "jest-get-type": "^29.0.0", - "jest-matcher-utils": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -2534,9 +2331,9 @@ "dev": true }, "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "dependencies": { "bser": "2.1.1" @@ -2568,34 +2365,15 @@ "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "engines": { + "node": ">=8" } }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2603,9 +2381,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -2617,10 +2395,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", @@ -2718,18 +2499,6 @@ "node": ">=0.10.0" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -2739,6 +2508,18 @@ "node": ">=4" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hast-util-embedded": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-1.0.6.tgz", @@ -3034,12 +2815,12 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3127,51 +2908,75 @@ "dev": true }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "semver": "^7.5.4" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/has-flag": { @@ -3210,9 +3015,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -3223,15 +3028,15 @@ } }, "node_modules/jest": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.0.3.tgz", - "integrity": "sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/core": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.0.3" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -3249,12 +3054,13 @@ } }, "node_modules/jest-changed-files": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.0.0.tgz", - "integrity": "sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -3262,28 +3068,29 @@ } }, "node_modules/jest-circus": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.0.3.tgz", - "integrity": "sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "@jest/environment": "^29.0.3", - "@jest/expect": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.0.3", - "jest-matcher-utils": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-runtime": "^29.0.3", - "jest-snapshot": "^29.0.3", - "jest-util": "^29.0.3", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.0.3", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -3362,22 +3169,21 @@ } }, "node_modules/jest-cli": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.0.3.tgz", - "integrity": "sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "@jest/core": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.0.3", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -3466,31 +3272,31 @@ } }, "node_modules/jest-config": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.0.3.tgz", - "integrity": "sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.0.3", - "@jest/types": "^29.0.3", - "babel-jest": "^29.0.3", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.0.3", - "jest-environment-node": "^29.0.3", - "jest-get-type": "^29.0.0", - "jest-regex-util": "^29.0.0", - "jest-resolve": "^29.0.3", - "jest-runner": "^29.0.3", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.0.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -3581,15 +3387,15 @@ } }, "node_modules/jest-diff": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.0.3.tgz", - "integrity": "sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.0.0", - "jest-get-type": "^29.0.0", - "pretty-format": "^29.0.3" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3666,9 +3472,9 @@ } }, "node_modules/jest-docblock": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.0.0.tgz", - "integrity": "sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" @@ -3678,16 +3484,16 @@ } }, "node_modules/jest-each": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.0.3.tgz", - "integrity": "sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.0.0", - "jest-util": "^29.0.3", - "pretty-format": "^29.0.3" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3764,46 +3570,46 @@ } }, "node_modules/jest-environment-node": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.0.3.tgz", - "integrity": "sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "@jest/environment": "^29.0.3", - "@jest/fake-timers": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.0.3", - "jest-util": "^29.0.3" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz", - "integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.0.3.tgz", - "integrity": "sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.0.0", - "jest-util": "^29.0.3", - "jest-worker": "^29.0.3", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -3815,28 +3621,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.0.3.tgz", - "integrity": "sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { - "jest-get-type": "^29.0.0", - "pretty-format": "^29.0.3" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz", - "integrity": "sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.0.3", - "jest-get-type": "^29.0.0", - "pretty-format": "^29.0.3" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -3913,18 +3719,18 @@ } }, "node_modules/jest-message-util": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.0.3.tgz", - "integrity": "sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.0.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -4003,22 +3809,23 @@ } }, "node_modules/jest-mock": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.0.3.tgz", - "integrity": "sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { - "@jest/types": "^29.0.3", - "@types/node": "*" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/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==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { "node": ">=6" @@ -4033,28 +3840,28 @@ } }, "node_modules/jest-regex-util": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.0.0.tgz", - "integrity": "sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.0.3.tgz", - "integrity": "sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.0.3", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", + "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "engines": { @@ -4062,13 +3869,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.3.tgz", - "integrity": "sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { - "jest-regex-util": "^29.0.0", - "jest-snapshot": "^29.0.3" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4145,30 +3952,30 @@ } }, "node_modules/jest-runner": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.0.3.tgz", - "integrity": "sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "@jest/console": "^29.0.3", - "@jest/environment": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.10.2", + "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.0.0", - "jest-environment-node": "^29.0.3", - "jest-haste-map": "^29.0.3", - "jest-leak-detector": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-resolve": "^29.0.3", - "jest-runtime": "^29.0.3", - "jest-util": "^29.0.3", - "jest-watcher": "^29.0.3", - "jest-worker": "^29.0.3", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -4247,31 +4054,31 @@ } }, "node_modules/jest-runtime": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.0.3.tgz", - "integrity": "sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.0.3", - "@jest/fake-timers": "^29.0.3", - "@jest/globals": "^29.0.3", - "@jest/source-map": "^29.0.0", - "@jest/test-result": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-mock": "^29.0.3", - "jest-regex-util": "^29.0.0", - "jest-resolve": "^29.0.3", - "jest-snapshot": "^29.0.3", - "jest-util": "^29.0.3", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -4350,35 +4157,31 @@ } }, "node_modules/jest-snapshot": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.0.3.tgz", - "integrity": "sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.0.3", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.0.3", - "jest-get-type": "^29.0.0", - "jest-haste-map": "^29.0.3", - "jest-matcher-utils": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.0.3", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4442,10 +4245,22 @@ "node": ">=8" } }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4469,13 +4284,19 @@ "node": ">=8" } }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/jest-util": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.0.3.tgz", - "integrity": "sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -4557,17 +4378,17 @@ } }, "node_modules/jest-validate": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.0.3.tgz", - "integrity": "sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.0.0", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.0.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4656,18 +4477,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.0.3.tgz", - "integrity": "sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/test-result": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^29.0.3", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -4745,12 +4566,13 @@ } }, "node_modules/jest-worker": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.0.3.tgz", - "integrity": "sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -4782,6 +4604,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -4819,9 +4647,9 @@ "dev": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -4877,15 +4705,19 @@ } }, "node_modules/logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", "dependencies": { - "@colors/colors": "1.5.0", + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" } }, "node_modules/longest-streak": { @@ -4899,41 +4731,62 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-dir/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -5089,25 +4942,6 @@ "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -5130,9 +4964,9 @@ } }, "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "engines": { "node": "*" } @@ -5149,64 +4983,19 @@ "dev": true }, "node_modules/nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", + "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", "dev": true, "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", "propagate": "^2.0.0" }, "engines": { "node": ">= 10.13" } }, - "node_modules/nock/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5214,9 +5003,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-path": { @@ -5244,6 +5033,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "dependencies": { "wrappy": "1" } @@ -5340,11 +5130,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/parse-github-repo-url": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", - "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=" - }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -5415,9 +5200,9 @@ } }, "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, "engines": { "node": ">= 6" @@ -5436,12 +5221,12 @@ } }, "node_modules/pretty-format": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.0.3.tgz", - "integrity": "sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -5496,12 +5281,41 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/rehype-minify-attribute-whitespace": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/rehype-minify-attribute-whitespace/-/rehype-minify-attribute-whitespace-2.0.3.tgz", @@ -5982,12 +5796,12 @@ } }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -6020,9 +5834,9 @@ } }, "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, "engines": { "node": ">=10" @@ -6034,9 +5848,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safe-stable-stringify": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "engines": { "node": ">=10" } @@ -6066,6 +5880,15 @@ "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.5.0.tgz", "integrity": "sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w==" }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6205,27 +6028,6 @@ "node": ">=10" } }, - "node_modules/string-length/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-length/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -6240,27 +6042,6 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/stringify-entities": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", @@ -6276,6 +6057,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -6297,55 +6090,33 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, + "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -6360,22 +6131,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -6429,9 +6184,12 @@ "dev": true }, "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } }, "node_modules/trough": { "version": "1.0.5", @@ -6578,15 +6336,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -6596,6 +6349,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -6603,7 +6360,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -6615,14 +6372,14 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" @@ -6709,11 +6466,11 @@ } }, "node_modules/winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.12.0.tgz", + "integrity": "sha512-OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w==", "dependencies": { - "@colors/colors": "1.5.0", + "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", "async": "^3.2.3", "is-stream": "^2.0.0", @@ -6723,7 +6480,7 @@ "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" + "winston-transport": "^4.7.0" }, "engines": { "node": ">= 12.0.0" @@ -6740,29 +6497,16 @@ } }, "node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", "dependencies": { "logform": "^2.3.2", "readable-stream": "^3.6.0", "triple-beam": "^1.3.0" }, "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston-transport/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "node": ">= 12.0.0" } }, "node_modules/winston/node_modules/async": { @@ -6770,19 +6514,6 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, - "node_modules/winston/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -6800,15 +6531,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -6842,22 +6564,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/write-file-atomic": { "version": "4.0.2", @@ -6897,24 +6608,24 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" @@ -6944,260 +6655,194 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" } }, "@babel/compat-data": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", - "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true }, "@babel/core": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", - "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.0", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0", - "convert-source-map": "^1.7.0", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", + "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.0", + "@babel/parser": "^7.24.0", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "json5": "^2.2.3", + "semver": "^6.3.1" } }, "@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, "requires": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@babel/helper-compilation-targets": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", - "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.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==", - "dev": true - } + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true }, "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-plugin-utils": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", - "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true }, "@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", + "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dev": true, "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.0", + "@babel/types": "^7.24.0" } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/parser": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", - "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -7246,12 +6891,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -7318,51 +6963,51 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" } }, "@babel/traverse": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", - "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.0", - "@babel/types": "^7.19.0", - "debug": "^4.1.0", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", + "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -7373,9 +7018,9 @@ "dev": true }, "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==" }, "@dabh/diagnostics": { "version": "2.0.3", @@ -7388,9 +7033,9 @@ } }, "@elastic/elasticsearch": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.17.0.tgz", - "integrity": "sha512-5QLPCjd0uLmLj1lSuKSThjNpq39f6NmlTy9ROLFwG5gjyTgpwSqufDeYG/Fm43Xs05uF7WcscoO7eguI3HuuYA==", + "version": "7.17.13", + "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.17.13.tgz", + "integrity": "sha512-GMXtFVqd3FgUlTtPL/GDc+3GhwvfZ0kSuegCvVVqb58kd+0I6U6u7PL8QFRLHtwzqLEBmYLdwr4PRkBAWKGlzA==", "requires": { "debug": "^4.3.1", "hpagent": "^0.1.1", @@ -7425,16 +7070,16 @@ "dev": true }, "@jest/console": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.0.3.tgz", - "integrity": "sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "requires": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "dependencies": { @@ -7490,47 +7135,41 @@ } }, "@jest/core": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.0.3.tgz", - "integrity": "sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "requires": { - "@jest/console": "^29.0.3", - "@jest/reporters": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.0.0", - "jest-config": "^29.0.3", - "jest-haste-map": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-regex-util": "^29.0.0", - "jest-resolve": "^29.0.3", - "jest-resolve-dependencies": "^29.0.3", - "jest-runner": "^29.0.3", - "jest-runtime": "^29.0.3", - "jest-snapshot": "^29.0.3", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", - "jest-watcher": "^29.0.3", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.0.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -7571,15 +7210,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7592,74 +7222,74 @@ } }, "@jest/environment": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.0.3.tgz", - "integrity": "sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "requires": { - "@jest/fake-timers": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.0.3" + "jest-mock": "^29.7.0" } }, "@jest/expect": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.0.3.tgz", - "integrity": "sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "requires": { - "expect": "^29.0.3", - "jest-snapshot": "^29.0.3" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" } }, "@jest/expect-utils": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.0.3.tgz", - "integrity": "sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "requires": { - "jest-get-type": "^29.0.0" + "jest-get-type": "^29.6.3" } }, "@jest/fake-timers": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.0.3.tgz", - "integrity": "sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "requires": { - "@jest/types": "^29.0.3", - "@sinonjs/fake-timers": "^9.1.2", + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.0.3", - "jest-mock": "^29.0.3", - "jest-util": "^29.0.3" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "@jest/globals": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.0.3.tgz", - "integrity": "sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "requires": { - "@jest/environment": "^29.0.3", - "@jest/expect": "^29.0.3", - "@jest/types": "^29.0.3", - "jest-mock": "^29.0.3" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" } }, "@jest/reporters": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.0.3.tgz", - "integrity": "sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -7667,26 +7297,19 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3", - "jest-worker": "^29.0.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", "v8-to-istanbul": "^9.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -7727,15 +7350,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7748,70 +7362,70 @@ } }, "@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "requires": { - "@sinclair/typebox": "^0.24.1" + "@sinclair/typebox": "^0.27.8" } }, "@jest/source-map": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.0.0.tgz", - "integrity": "sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.0.3.tgz", - "integrity": "sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "requires": { - "@jest/console": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.0.3.tgz", - "integrity": "sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "requires": { - "@jest/test-result": "^29.0.3", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.0.3", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.0.3.tgz", - "integrity": "sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.0.3", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", + "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.0.3", - "jest-regex-util": "^29.0.0", - "jest-util": "^29.0.3", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" + "write-file-atomic": "^4.0.2" }, "dependencies": { "ansi-styles": { @@ -7866,12 +7480,12 @@ } }, "@jest/types": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.0.3.tgz", - "integrity": "sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "requires": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -7931,219 +7545,94 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true }, "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@octokit/auth-token": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", - "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", - "requires": { - "@octokit/types": "^7.0.0" - } - }, - "@octokit/core": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz", - "integrity": "sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA==", - "requires": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^7.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/endpoint": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", - "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", - "requires": { - "@octokit/types": "^7.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "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==" - } - } - }, - "@octokit/graphql": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", - "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", - "requires": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^7.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.10.0.tgz", - "integrity": "sha512-wPQDpTyy35D6VS/lekXDaKcxy6LI2hzcbmXBnP180Pdgz3dXRzoHdav0w09yZzzWX8HHLGuqwAeyMqEPtWY2XA==" - }, - "@octokit/plugin-paginate-rest": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.3.0.tgz", - "integrity": "sha512-4V8hWMoXuxb03xPs3s3RjUb5Bzx4HmVRhG+gvbO08PB48ag6G8mk6/HDFKlAXz9XEorDIkc0pXcXnaOz8spHgg==", - "requires": { - "@octokit/types": "^7.4.0" - } - }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "requires": {} - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.6.0.tgz", - "integrity": "sha512-IAuT/e1gIUVszNmV+vfXNxa6xXI9dlghhBDqLGEmjz3so9sHqOlXN4R5gWcCRJkt4mum4NCaNjUk17yTrK76Rw==", - "requires": { - "@octokit/types": "^7.4.0", - "deprecation": "^2.3.1" - } - }, - "@octokit/request": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", - "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", - "requires": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^7.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "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==" - } - } - }, - "@octokit/request-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", - "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", - "requires": { - "@octokit/types": "^7.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/rest": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz", - "integrity": "sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA==", - "requires": { - "@octokit/core": "^4.0.0", - "@octokit/plugin-paginate-rest": "^4.0.0", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.0.0" - } - }, - "@octokit/types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.4.0.tgz", - "integrity": "sha512-ln1GW0p72+P8qeRjHGj0wyR5ePy6slqvczveOqonMk1w1UWua6UgrkwFzv6S0vKWjSqt/ijYXF1ehNVRRRSvLA==", - "requires": { - "@octokit/openapi-types": "^13.10.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@sinclair/typebox": { - "version": "0.24.41", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.41.tgz", - "integrity": "sha512-TJCgQurls4FipFvHeC+gfAzb+GGstL0TDwYJKQVtTeSvJIznWzP7g3bAd5gEBlr8+bIxqnWS9VGVWREDhmE8jA==", + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.0" } }, "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@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==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, "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==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -8151,18 +7640,18 @@ } }, "@types/babel__traverse": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.1.tgz", - "integrity": "sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, "requires": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "requires": { "@types/node": "*" @@ -8193,9 +7682,9 @@ } }, "@types/jest": { - "version": "29.0.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.0.1.tgz", - "integrity": "sha512-CAZrjLRZs4xEdIrfrdV74xK1Vo/BKQZwUcjJv3gp6gMeV3BsVxMnXTcgtYOKyphT4DPPo7jxVEVhuwJTQn3oPQ==", + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dev": true, "requires": { "expect": "^29.0.0", @@ -8212,15 +7701,9 @@ } }, "@types/node": { - "version": "16.11.58", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.58.tgz", - "integrity": "sha512-uMVxJ111wpHzkx/vshZFb6Qni3BOMnlWLq7q9jrwej7Yw/KvjsEbpxCCxw+hLKxexFMc8YmpG8J9tnEe/rKsIg==", - "dev": true - }, - "@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", + "version": "16.18.89", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.89.tgz", + "integrity": "sha512-QlrE8QI5z62nfnkiUZysUsAaxWaTMoGqFVcB3PvK1WxJ0c699bacErV4Fabe9Hki6ZnaHalgzihLbTl2d34XfQ==", "dev": true }, "@types/stack-utils": { @@ -8229,6 +7712,11 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, + "@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" + }, "@types/unist": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", @@ -8259,10 +7747,25 @@ "type-fest": "^0.21.3" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -8277,42 +7780,16 @@ "sprintf-js": "~1.0.2" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - }, - "dependencies": { - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, "babel-jest": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.0.3.tgz", - "integrity": "sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "requires": { - "@jest/transform": "^29.0.3", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.0.2", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -8380,12 +7857,27 @@ "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } } }, "babel-plugin-jest-hoist": { - "version": "29.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz", - "integrity": "sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -8415,12 +7907,12 @@ } }, "babel-preset-jest": { - "version": "29.0.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz", - "integrity": "sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^29.0.2", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -8463,11 +7955,6 @@ "bcp-47-match": "^1.0.0" } }, - "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8488,15 +7975,15 @@ } }, "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" } }, "bser": { @@ -8527,9 +8014,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001399", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", - "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", + "version": "1.0.30001597", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", + "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", "dev": true }, "ccount": { @@ -8538,6 +8025,17 @@ "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", "dev": true }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -8575,9 +8073,9 @@ "dev": true }, "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, "clean-css": { @@ -8588,33 +8086,16 @@ "requires": { "source-map": "~0.6.0" } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" } }, "co": { @@ -8624,9 +8105,9 @@ "dev": true }, "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "color": { @@ -8669,14 +8150,6 @@ "text-hex": "1.0.x" } }, - "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", @@ -8690,20 +8163,83 @@ "dev": true }, "config": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/config/-/config-3.3.8.tgz", - "integrity": "sha512-rFzF6VESOdp7wAXFlB9IOZI4ouL05g3A03v2eRcTHj2JBQaTNJ40zhAUl5wRbWHqLZ+uqp/7OE0BWWtAVgrong==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/config/-/config-3.3.11.tgz", + "integrity": "sha512-Dhn63ZoWCW5EMg4P0Sl/XNsj/7RLiUIA1x1npCy+m2cRwRHzLnt3UtYtxRDMZW/6oOMdWhCzaGYkOcajGgrAOA==", "requires": { - "json5": "^2.2.1" + "json5": "^2.2.3" } }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "cross-spawn": { @@ -8726,27 +8262,18 @@ } }, "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} }, "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -8754,29 +8281,29 @@ "dev": true }, "diff-sequences": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.0.0.tgz", - "integrity": "sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true }, "elastic-tools": { - "version": "git+ssh://git@github.com/nciocpl/elastic-tools.git#4aef3c176dfef27fafc4a3ee74b83bf21242bff3", - "from": "elastic-tools@git+https://github.com/nciocpl/elastic-tools.git#v2.0.0", + "version": "git+ssh://git@github.com/nciocpl/elastic-tools.git#3459d58209bfb878be803ab5d3b7c7bfb3a78adf", + "from": "elastic-tools@github:nciocpl/elastic-tools#v3.0.0", "requires": { "@elastic/elasticsearch": "^7.17.0", "moment": "^2.29.1" } }, "electron-to-chromium": { - "version": "1.4.248", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.248.tgz", - "integrity": "sha512-qShjzEYpa57NnhbW2K+g+Fl+eNoDvQ7I+2MRwWnU6Z6F0HhXekzsECCLv+y2OJUsRodjqoSfwHkIX42VUFtUzg==", + "version": "1.4.703", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.703.tgz", + "integrity": "sha512-094ZZC4nHXPKl/OwPinSMtLN9+hoFkdfQGKnvXbY+3WEAYtVDpz9UhJIViiY6Zb8agvqxiaJzNG9M+pRZWvSZw==", "dev": true }, "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true }, "emoji-regex": { @@ -8800,15 +8327,15 @@ } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "esprima": { @@ -8840,16 +8367,16 @@ "dev": true }, "expect": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.0.3.tgz", - "integrity": "sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "requires": { - "@jest/expect-utils": "^29.0.3", - "jest-get-type": "^29.0.0", - "jest-matcher-utils": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" } }, "extend": { @@ -8873,9 +8400,9 @@ "dev": true }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { "bser": "2.1.1" @@ -8910,11 +8437,6 @@ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -8922,16 +8444,16 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, "gensync": { @@ -9002,21 +8524,21 @@ } } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, "hast-util-embedded": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-1.0.6.tgz", @@ -9220,12 +8742,12 @@ "dev": true }, "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-decimal": { @@ -9281,40 +8803,58 @@ "dev": true }, "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true }, "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "semver": "^7.5.4" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^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==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "dependencies": { @@ -9347,9 +8887,9 @@ } }, "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -9357,50 +8897,52 @@ } }, "jest": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.0.3.tgz", - "integrity": "sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "requires": { - "@jest/core": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.0.3" + "jest-cli": "^29.7.0" } }, "jest-changed-files": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.0.0.tgz", - "integrity": "sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "requires": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" } }, "jest-circus": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.0.3.tgz", - "integrity": "sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "requires": { - "@jest/environment": "^29.0.3", - "@jest/expect": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.0.3", - "jest-matcher-utils": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-runtime": "^29.0.3", - "jest-snapshot": "^29.0.3", - "jest-util": "^29.0.3", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.0.3", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -9457,22 +8999,21 @@ } }, "jest-cli": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.0.3.tgz", - "integrity": "sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "requires": { - "@jest/core": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.0.3", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "dependencies": { @@ -9528,31 +9069,31 @@ } }, "jest-config": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.0.3.tgz", - "integrity": "sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.0.3", - "@jest/types": "^29.0.3", - "babel-jest": "^29.0.3", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.0.3", - "jest-environment-node": "^29.0.3", - "jest-get-type": "^29.0.0", - "jest-regex-util": "^29.0.0", - "jest-resolve": "^29.0.3", - "jest-runner": "^29.0.3", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.0.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -9609,15 +9150,15 @@ } }, "jest-diff": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.0.3.tgz", - "integrity": "sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^29.0.0", - "jest-get-type": "^29.0.0", - "pretty-format": "^29.0.3" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -9672,25 +9213,25 @@ } }, "jest-docblock": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.0.0.tgz", - "integrity": "sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.0.3.tgz", - "integrity": "sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "requires": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.0.0", - "jest-util": "^29.0.3", - "pretty-format": "^29.0.3" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -9745,65 +9286,65 @@ } }, "jest-environment-node": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.0.3.tgz", - "integrity": "sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "requires": { - "@jest/environment": "^29.0.3", - "@jest/fake-timers": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.0.3", - "jest-util": "^29.0.3" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "jest-get-type": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz", - "integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true }, "jest-haste-map": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.0.3.tgz", - "integrity": "sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "requires": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.0.0", - "jest-util": "^29.0.3", - "jest-worker": "^29.0.3", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" } }, "jest-leak-detector": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.0.3.tgz", - "integrity": "sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "requires": { - "jest-get-type": "^29.0.0", - "pretty-format": "^29.0.3" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-matcher-utils": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz", - "integrity": "sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^29.0.3", - "jest-get-type": "^29.0.0", - "pretty-format": "^29.0.3" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -9858,18 +9399,18 @@ } }, "jest-message-util": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.0.3.tgz", - "integrity": "sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.0.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -9926,42 +9467,43 @@ } }, "jest-mock": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.0.3.tgz", - "integrity": "sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "requires": { - "@jest/types": "^29.0.3", - "@types/node": "*" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.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==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "requires": {} }, "jest-regex-util": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.0.0.tgz", - "integrity": "sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true }, "jest-resolve": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.0.3.tgz", - "integrity": "sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.0.3", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", + "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "dependencies": { @@ -10017,40 +9559,40 @@ } }, "jest-resolve-dependencies": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.3.tgz", - "integrity": "sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "requires": { - "jest-regex-util": "^29.0.0", - "jest-snapshot": "^29.0.3" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" } }, "jest-runner": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.0.3.tgz", - "integrity": "sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "requires": { - "@jest/console": "^29.0.3", - "@jest/environment": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.10.2", + "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.0.0", - "jest-environment-node": "^29.0.3", - "jest-haste-map": "^29.0.3", - "jest-leak-detector": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-resolve": "^29.0.3", - "jest-runtime": "^29.0.3", - "jest-util": "^29.0.3", - "jest-watcher": "^29.0.3", - "jest-worker": "^29.0.3", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -10107,31 +9649,31 @@ } }, "jest-runtime": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.0.3.tgz", - "integrity": "sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.0.3", - "@jest/fake-timers": "^29.0.3", - "@jest/globals": "^29.0.3", - "@jest/source-map": "^29.0.0", - "@jest/test-result": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-mock": "^29.0.3", - "jest-regex-util": "^29.0.0", - "jest-resolve": "^29.0.3", - "jest-snapshot": "^29.0.3", - "jest-util": "^29.0.3", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -10188,35 +9730,31 @@ } }, "jest-snapshot": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.0.3.tgz", - "integrity": "sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "requires": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.0.3", - "@jest/transform": "^29.0.3", - "@jest/types": "^29.0.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.0.3", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.0.3", - "jest-get-type": "^29.0.0", - "jest-haste-map": "^29.0.3", - "jest-matcher-utils": "^29.0.3", - "jest-message-util": "^29.0.3", - "jest-util": "^29.0.3", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.0.3", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "dependencies": { "ansi-styles": { @@ -10259,10 +9797,19 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "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==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -10276,16 +9823,22 @@ "requires": { "has-flag": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "jest-util": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.0.3.tgz", - "integrity": "sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "requires": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -10345,17 +9898,17 @@ } }, "jest-validate": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.0.3.tgz", - "integrity": "sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "requires": { - "@jest/types": "^29.0.3", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.0.0", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.0.3" + "pretty-format": "^29.7.0" }, "dependencies": { "ansi-styles": { @@ -10416,18 +9969,18 @@ } }, "jest-watcher": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.0.3.tgz", - "integrity": "sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "requires": { - "@jest/test-result": "^29.0.3", - "@jest/types": "^29.0.3", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^29.0.3", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "dependencies": { @@ -10483,12 +10036,13 @@ } }, "jest-worker": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.0.3.tgz", - "integrity": "sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "requires": { "@types/node": "*", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -10510,6 +10064,12 @@ } } }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -10538,9 +10098,9 @@ "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" }, "kleur": { "version": "3.0.3", @@ -10580,11 +10140,12 @@ } }, "logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", "requires": { - "@colors/colors": "1.5.0", + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", "safe-stable-stringify": "^2.3.1", @@ -10598,27 +10159,45 @@ "dev": true }, "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==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "requires": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^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==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } @@ -10741,19 +10320,6 @@ "picomatch": "^2.3.1" } }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -10770,9 +10336,9 @@ } }, "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" }, "ms": { "version": "2.1.2", @@ -10786,52 +10352,14 @@ "dev": true }, "nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", + "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", "dev": true, "requires": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", "propagate": "^2.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } - } - }, - "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" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } } }, "node-int64": { @@ -10841,9 +10369,9 @@ "dev": true }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "normalize-path": { @@ -10865,6 +10393,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "requires": { "wrappy": "1" } @@ -10935,11 +10464,6 @@ "is-hexadecimal": "^1.0.0" } }, - "parse-github-repo-url": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", - "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=" - }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -10989,9 +10513,9 @@ "dev": true }, "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true }, "pkg-dir": { @@ -11004,12 +10528,12 @@ } }, "pretty-format": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.0.3.tgz", - "integrity": "sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "requires": { - "@jest/schemas": "^29.0.0", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -11047,12 +10571,28 @@ "xtend": "^4.0.0" } }, + "pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true + }, "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "rehype-minify-attribute-whitespace": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/rehype-minify-attribute-whitespace/-/rehype-minify-attribute-whitespace-2.0.3.tgz", @@ -11419,12 +10959,12 @@ "dev": true }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -11445,9 +10985,9 @@ "dev": true }, "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true }, "safe-buffer": { @@ -11456,9 +10996,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-stable-stringify": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==" + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==" }, "section-matter": { "version": "1.0.0", @@ -11481,6 +11021,12 @@ "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.5.0.tgz", "integrity": "sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w==" }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -11594,23 +11140,6 @@ "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "string-width": { @@ -11622,23 +11151,6 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "stringify-entities": { @@ -11652,6 +11164,15 @@ "xtend": "^4.0.0" } }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -11675,31 +11196,13 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "has-flag": "^3.0.0" } }, "supports-preserve-symlinks-flag": { @@ -11708,16 +11211,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -11762,9 +11255,9 @@ "dev": true }, "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==" }, "trough": { "version": "1.0.5", @@ -11864,15 +11357,10 @@ "unist-util-is": "^4.0.0" } }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -11885,14 +11373,14 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" } }, "vfile": { @@ -11958,11 +11446,11 @@ } }, "winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.12.0.tgz", + "integrity": "sha512-OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w==", "requires": { - "@colors/colors": "1.5.0", + "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.2", "async": "^3.2.3", "is-stream": "^2.0.0", @@ -11972,23 +11460,13 @@ "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" + "winston-transport": "^4.7.0" }, "dependencies": { "async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "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" - } } } }, @@ -12002,25 +11480,13 @@ } }, "winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", "requires": { "logform": "^2.3.2", "readable-stream": "^3.6.0", "triple-beam": "^1.3.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" - } - } } }, "wrap-ansi": { @@ -12034,12 +11500,6 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -12063,22 +11523,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "write-file-atomic": { "version": "4.0.2", @@ -12109,24 +11561,24 @@ "dev": true }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" } }, "yargs-parser": { diff --git a/package.json b/package.json index 5cfe0e7..4163ffc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "r4rimporter", - "version": "1.2.0", + "name": "r4r-loader", + "version": "3.0.0", "description": "Content Importer for the Resources for Researchers API", "main": "index.js", "scripts": { @@ -20,35 +20,31 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/NCIOCPL/r4rimporter.git" + "url": "git+https://github.com/NCIOCPL/r4r-loader.git" }, "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/NCIOCPL/r4rimporter/issues" + "url": "https://github.com/NCIOCPL/r4r-loader/issues" }, "engines": { - "node": ">=16.0.0 <17.0.0", - "npm": ">=8.0.0 <9.0.0" + "node": ">=20.11.0 <21.0.0" }, - "homepage": "https://github.com/NCIOCPL/r4rimporter#readme", + "homepage": "https://github.com/NCIOCPL/r4r-loader#readme", "dependencies": { - "@elastic/elasticsearch": "^7.17.0", - "@octokit/rest": "^19.0.4", - "axios": "^0.27.2", - "config": "^3.3.8", - "elastic-tools": "git+https://github.com/nciocpl/elastic-tools.git#v2.0.0", + "@elastic/elasticsearch": "^7.17.13", + "config": "^3.3.11", + "elastic-tools": "github:nciocpl/elastic-tools#v3.0.0", "gray-matter": "^4.0.3", "loader-pipeline": "git+https://github.com/nciocpl/loader-pipeline.git#v1.1.0", - "moment": "^2.29.4", - "parse-github-repo-url": "^1.4.1", - "winston": "^3.8.2" + "moment": "^2.30.1", + "winston": "^3.12.0" }, "devDependencies": { - "@types/jest": "^29.0.1", - "@types/node": "^16.11.58", - "jest": "^29.0.3", - "nock": "^13.2.9", + "@types/jest": "^29.5.12", + "@types/node": "^16.18.89", + "jest": "^29.7.0", + "nock": "^13.5.4", "rehype-preset-minify": "^5.1.0", "rehype-stringify": "^8.0.0", "remark-parse": "^9.0.0",