From 60ec64d4fe7e7bcd22c50575b387e730e8b4c6a5 Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Wed, 22 May 2024 15:54:20 -0500 Subject: [PATCH 01/19] initial configuration (#2) --- .env.development | 4 - config/gen3/colors.json | 15 +- config/gen3/discovery.json | 366 ++++++++++++++--------------------- config/gen3/footer.json | 7 +- config/gen3/landingPage.json | 44 +---- config/gen3/login.json | 2 +- config/gen3/navigation.json | 23 --- config/themeColors.json | 160 ++++++++------- package-lock.json | 27 ++- package.json | 6 +- 10 files changed, 275 insertions(+), 379 deletions(-) diff --git a/.env.development b/.env.development index 52a3fdf..64a2760 100644 --- a/.env.development +++ b/.env.development @@ -1,6 +1,2 @@ GEN3_COMMONS_NAME=gen3 NEXT_PUBLIC_GEN3_API=https://localhost:3010 -NEXT_PUBLIC_GEN3_DOMAIN=https://localhost:3010 - -# set these if you want to use different endpoints -#NEXT_PUBLIC_GEN3_GUPPY_API= diff --git a/config/gen3/colors.json b/config/gen3/colors.json index 9ac464a..b339da3 100644 --- a/config/gen3/colors.json +++ b/config/gen3/colors.json @@ -1,9 +1,10 @@ { - "primary": "#345948", - "secondary": "#BF7E06", - "accent": "#8C0404", - "base": "#CCCCCC", - "accentWarm": "#594B04", - "accentCool": "#908719", - "chart": "#0d95A1" + "primary": "#3283C8", + "secondary": "#3283C8", + "accent": "#b75113", + "base": "#c0c0c0", + "accentWarm": "#25869b", + "accentCool": "#1f839b", + "chart": "#0d95A1", + "table": "#c0c0c0" } diff --git a/config/gen3/discovery.json b/config/gen3/discovery.json index e49aaf3..74740a0 100644 --- a/config/gen3/discovery.json +++ b/config/gen3/discovery.json @@ -4,80 +4,68 @@ "expandableRows": true }, "features": { + "dataFetchFunction": "AggMDSAllLocal", + "aiSearch" : true, "advSearchFilters": { - "enabled": true, + "enabled": false, "field": "advSearchFilters", "displayName": "Filters", "filters": [ { - "key": "Study Type" + "key": "Research Focus Area" }, { - "key": "Data Type" + "key": "Administering IC(s)" }, { - "key": "Subject Type" + "key": "Simulated vs. Real Data" }, { - "key": "Gender" + "key": "Year Grant Awarded" }, { - "key": "Age" + "key": "Study Description" } ] }, + "pageTitle": { + "enabled": false, + "text": "Study Discovery" + }, "tagsColumn": { "enabled": false }, "tagsInDescription": { "enabled": true }, - "exportToWorkspace": { - "enabled": true, - "manifestFieldName": "__manifest", - "enableDownloadManifest": true, - "enableDownloadZip": true, - "downloadZipButtonText": "Download Zip", - "downloadManifestButtonText": "Download Manifest", - "documentationLinks": { - "gen3Client": "https://gen3.org/resources/user/gen3-client/", - "gen3Workspaces": "https://gen3.org/resources/user/analyze-data/" - }, - "verifyExternalLogins": true - }, - "pageTitle": { - "enabled": false - }, "search": { "searchBar": { "enabled": true, - "inputSubtitle": "Examples: pain, buprenorphine, intervention", "searchableTextFields": [ - "study_metadata.minimal_info.study_description", - "institutions", - "investigators_name", - "study_metadata.minimal_info.study_name", - "project_number", - "study_metadata.metadata_location.nih_application_id", - "_hdp_uid", - "dataset_1_title", - "dataset_2_title", - "dataset_3_title", - "dataset_4_title", - "administering_ic", - "research_program", - "doi_identifier", - "doi_resolvable_link" + "short_name", + "full_name", + "study_description", + "study_id" ] }, "tagSearchDropdown": { "enabled": true, - "collapsibleButtonText": "Data Repository" + "collapsibleButtonText": "Data Commons" + }, + "exportToWorkspace": { + "enabled": true, + "manifestFieldName": "__manifest", + "enableDownloadManifest": true, + "downloadManifestButtonText": "Download", + "documentationLinks": { + "gen3Client": "https://gen3.org/resources/user/gen3-client/", + "gen3Workspaces": "https://gen3.org/resources/user/analyze-data/" + } } }, "authorization": { "enabled": true, - "columnTooltip": "Filter by data access", + "columnTooltip": "Filter by data access. Accessible indicates you are authorized to access. Not accessible indicates you are not authorized to access.", "supportedValues": { "accessible": { "enabled": true, @@ -88,11 +76,11 @@ "menuText": "Not Accessible" }, "pending": { - "enabled": true, + "enabled": false, "menuText": "Pending" }, "notAvailable": { - "enabled": true, + "enabled": false, "menuText": "Not Available" } } @@ -101,250 +89,196 @@ "aggregations": [ { "name": "Studies", - "field": "_hdp_uid", + "field": "_unique_id", "type": "count" + }, + { + "name": "Total Subjects", + "field": "_subjects_count", + "type": "sum" } ], "tagSelector": { - "showTagCategoryNames": true + "title": "Tags by category" }, - "studies": [], "studyColumns": [ { - "name": "Project Title", - "field": "study_metadata.minimal_info.study_name", + "name": "Study Name", + "field": "short_name", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "n/a", + "width": "157px", + "contentType": "string" + }, + { + "name": "Full Name", + "field": "full_name", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "n/a", + "width": "400px", + "contentType": "string" + }, + { + "name": "Number of Subjects", + "field": "_subjects_count", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a" + "valueIfNotAvailable": "n/a", + "contentType": "number", + "width": "98px" }, { - "name": "HEAL Research Focus Area", - "field": "research_focus_area", + "name": "ID Number", + "field": "study_id", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a" + "valueIfNotAvailable": "n/a", + "width": "152px", + "contentType": "string" }, { - "name": "HEAL Research Program", - "field": "research_program", + "name": "Data Commons", + "field": "commons", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a" + "valueIfNotAvailable": "n/a", + "contentType": "link", + "cellRenderFunction": "withURL", + "params": { + "hrefValueFromField": "commons_url" + } }, { - "name": "Investigator(s)", - "field": "investigators_name", + "name": "DATA ACCESS METHOD", + "field": "data_access_method", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a" + "valueIfNotAvailable": "API", + "contentType": "string" } ], "studyPreviewField": { - "name": "Summary", - "field": "study_metadata.minimal_info.study_description", + "name": "Description", + "field": "study_description", "contentType": "string", "includeName": false, "includeIfNotAvailable": true, - "valueIfNotAvailable": "No summary has been provided for this study." + "valueIfNotAvailable": "No description has been provided for this study." }, - "detailView": { - "headerField": "study_metadata.minimal_info.study_name", - "tabs": [ + "simpleDetailsView": { + "showAllAvailableFields": false, + "header": { + "field": "name" + }, + "fieldsToShow": [ { - "tabName": "Summary", - "groups": [ + "groupName": "Study Identifiers", + "groupWidth": "half", + "includeName": false, + "fields": [ { - "header": "Study Description Summary", - "fields": [ - { - "type": "block", - "sourceField": "study_metadata.minimal_info.study_description" - } - ] + "name": "Number of Subjects", + "field": "_subjects_count", + "contentType": "number" }, { - "header": "HEAL Research Initiative/Award Administration", - "fields": [ - { - "type": "text", - "label": "Project Number", - "sourceField": "project_number", - "default": "" - }, - { - "type": "text", - "label": "HEAL Research Program", - "sourceField": "research_program", - "default": "Not specified" - }, - { - "type": "text", - "label": "Institution(s)", - "sourceField": "institutions" - }, - { - "type": "text", - "label": "Investigator(s)", - "sourceField": "investigators_name" - }, - { - "type": "text", - "label": "Administering IC(s)", - "sourceField": "administering_ic" - }, - { - "type": "text", - "label": "Year Grant Awarded", - "sourceField": "year_awarded" - }, - { - "type": "link", - "label": "NIH RePORTER Link", - "sourceField": "study_metadata.metadata_location.nih_reporter_link" - }, - { - "type": "text", - "label": "Clinical Trial ID", - "sourceField": "study_metadata.metadata_location.clinical_trials_study_ID" - }, - { - "type": "link", - "label": "Clinical Trial Link", - "sourceField": "study_metadata.metadata_location.clinical_trials_study_link" - }, - { - "type": "text", - "label": "DOI", - "sourceField": "doi_identifier" - }, - { - "type": "link", - "label": "DOI Link", - "sourceField": "doi_resolvable_link" - } - ] + "name": "Full Name", + "field": "full_name", + "contentType": "string" }, { - "header": "Study Characteristics", - "fields": [ - { - "type": "tags", - "sourceField": "tags" - } - ] - } - ] - }, - { - "tabName": "Data", - "groups": [ + "name": "Short Name", + "field": "short_name", + "contentType": "text", + "includeName": true, + "includeIfNotAvailable": true, + "valueIfNotAvailable": "N/A" + }, { - "fields": [ - { - "type": "accessDescriptor" - } - ] + "name": "dbGaP Accession Number", + "field": "dbgap_accession", + "contentType": "text", + "includeName": true, + "includeIfNotAvailable": false }, { - "header": "Repository", - "fields": [ - { - "sourceField": "study_metadata.metadata_location.data_repositories[*].repository_study_link", - "type": "linkList", - "label": "" - } - ] - } - ] - }, - { - "tabName": "Cite", - "groups": [ + "name": "Project ID", + "field": "project_id", + "contentType": "text", + "includeIfNotAvailable": false + }, + { + "name": "Data Commons", + "field": "commons", + "contentType": "text", + "includeIfNotAvailable": false + }, { - "header": "Citation Requirements", - "fields": [ - { - "type": "text", - "label": "Cite the study on the HEAL Data Platform", - "sourceField": "study_metadata.citation.heal_platform_citation" - }, - { - "type": "text", - "label": "Cite the study at the local repository", - "sourceField": "study_metadata.metadata_location.data_repositories[*].repository_citation" - } - ] + "name": "Tutorial Notebook", + "field": "tutorial_notebook", + "contentType": "text", + "includeIfNotAvailable": true, + "valueIfNotAvailable": "NO" } ] }, { - "tabName": "Related Studies", - "groups": [ + "groupWidth": "full", + "fields": [ { - "header": "Related Studies", - "fields": [ - { - "type": "linkList", - "sourceField": "related_studies", - "label": "", - "renderFunction": "linkWithTitle" - } - ] + "name": "Description", + "field": "study_description", + "contentType": "paragraphs", + "includeName": true, + "includeIfNotAvailable": true, + "valueIfNotAvailable": "No description has been provided for this study." } ] } ] }, - "tagsDisplayName": "Study Filters", - "tagColumnWidth": "500px", "minimalFieldMapping": { - "authzField": "authz", "tagsListFieldName": "tags", - "dataAvailabilityField": "data_availability", - "uid": "_hdp_uid" + "authzField": "authz", + "uid": "_unique_id" }, "tagCategories": [ { - "name": "Study Type", - "color": "#532565", - "display": false + "name": "Commons", + "displayName": "Data Commons", + "color": "rgba(129, 211, 248, 1)", + "display": true }, { - "name": "Data Type", - "color": "#982568", + "name": "Program", + "color": "rgba(129, 211, 248, 1)", "display": false }, { - "name": "Subject Type", - "color": "#981f32", + "name": "Study Registration", + "color": "rgba(236, 128, 141, 1)", "display": false }, { - "name": "Gender", - "color": "#bf362e", + "name": "Data Type", + "color": "rgba(112, 182, 3, 1)", "display": false }, { - "name": "Age", - "color": "#e07c3e", + "name": "primary_site", + "color": "rgba(112, 182, 3, 1)", "display": false }, { - "name": "Research Program", - "color": "#532565", + "name": "disease_type", + "color": "rgba(112, 182, 3, 1)", "display": false }, { - "name": "Commons", - "displayName": "Data Resources", - "color": "#981f32", + "name": "data_type", + "color": "rgba(112, 182, 3, 1)", "display": false }, { - "name": "Other", - "color": "#bf362e", + "name": "clinical_study_type", + "color": "rgba(112, 182, 3, 1)", "display": false - }, - { - "name": "Data Repository", - "color": "#bf362e", - "display": true } ] } diff --git a/config/gen3/footer.json b/config/gen3/footer.json index 2429d38..57800bb 100644 --- a/config/gen3/footer.json +++ b/config/gen3/footer.json @@ -1,14 +1,17 @@ { + "classNames": { + "root": "bg-base-darkest" + }, "footerRightLogos": [ [ { - "logo": "/icons/gen3.png", + "logo": "/ff/icons/gen3.png", "width": 132, "height": 60, "description": "Gen3 Logo" }, { - "logo": "/icons/createdby.png", + "logo": "/ff/icons/createdby.png", "width": 170, "height": 60, "description": "Created by CTDS" diff --git a/config/gen3/landingPage.json b/config/gen3/landingPage.json index 9f1d633..0755dad 100644 --- a/config/gen3/landingPage.json +++ b/config/gen3/landingPage.json @@ -2,7 +2,7 @@ "body": [ { "title": { - "text": "Gen3 Data Platform", + "text": "Prometheus Data Platform", "level": 2 } }, @@ -10,22 +10,12 @@ "splitarea": { "left": [ { - "text": "The Gen3 Data Platform is a single web interface which allows visitors to discover, access and analyze data. Making data easily findable enables secondary, cross-study analyses, promotes dissemination of research and accelerates new discoveries." + "text": "Fill in Description of the Data Platform" }, { "link": { - "href": "/discovery", - "linkType": "portal", - "text": "Explore Gen3 Data" - } - }, - { - "text": "The Gen3 platform consists of open-source software services that support the emergence of healthy data ecosystems by enabling the interoperation and creation of cloud-based data resources, including data commons and analysis workspaces. Gen3 aims to accelerate and democratize the process of scientific discovery by making it easy to manage, analyze, harmonize, and share large and complex datasets in the cloud." - }, - { - "link": { - "href": "https://gen3.datacommons.io", - "text": "Learn More" + "href": "/Discovery", + "text": "Discover Data" } } ], @@ -41,32 +31,6 @@ }, { "break": "standard" - }, - { - "cardsArea": { - "title": "", - "cards": [ - { - "icon": "MdOutlineSearch", - "bodyText": "Search studies and related datasets for download or analysis in a workspace.", - "btnText": "Discover", - "href": "/Discovery", - "linkType": "portal" - }, - { - "icon": "MdOutlineBarChart", - "bodyText": "Explore Tutorials and Example Analysis.", - "btnText": "Analyze", - "href": "/resource-browser", - "linkType": "portal" - } - ] - } - }, - { - "quoteArea": { - "quote": "Our vision is a world in which researchers have ready access to the data needed and the tools required to make data-driven discoveries that increase our scientific knowledge and improve the quality of life." - } } ] } diff --git a/config/gen3/login.json b/config/gen3/login.json index 8ea514a..6443d98 100644 --- a/config/gen3/login.json +++ b/config/gen3/login.json @@ -1,7 +1,7 @@ { "topContent": [ { - "text": "Gen3 Data Commons", + "text": "Prometheus Data Platform", "className": "text-center text-3xl font-bold" }, { diff --git a/config/gen3/navigation.json b/config/gen3/navigation.json index f8959b9..b144e1f 100644 --- a/config/gen3/navigation.json +++ b/config/gen3/navigation.json @@ -25,24 +25,6 @@ "name": "Exploration", "tooltip": "The Exploration Page enables discovery of the data at the subject level and features a cohort builder." }, - { - "icon": "gen3:query", - "href": "/Query", - "name": "Query", - "tooltip": "Query the databases using GraphiQL." - }, - { - "icon": "gen3:analysis", - "href": "/resource-browser", - "name": "Analysis", - "tooltip": "Learn how to use Jupyter Notebooks to explore and visualize data available by running a tutorial notebook, or use one of these examples as a launching point for your own custom analysis." - }, - { - "icon": "gen3:workspace", - "href": "/Workspace", - "name": "Workspace", - "tooltip": "Gen3 workspaces are secure data analysis environments in the cloud that can access data from one or more data resources." - }, { "icon": "gen3:profile", "href": "/Profile", @@ -53,11 +35,6 @@ }, "topBar": { "items": [ - { - "rightIcon": "gen3:upload", - "href": "/submission", - "name": "Browse Data" - }, { "href": "https://gen3.org/resources/user/", "name": "Documentation" diff --git a/config/themeColors.json b/config/themeColors.json index 8927c01..1b94621 100644 --- a/config/themeColors.json +++ b/config/themeColors.json @@ -1,39 +1,39 @@ { "primary": { - "DEFAULT": "#345948", - "vivid": "#2d6049", - "min": "#050907", - "darkest": "#111d17", - "darker": "#1d3128", - "dark": "#284538", - "light": "#627e71", - "lighter": "#8fa49a", - "lightest": "#bdc9c4", - "max": "#ebeeed" + "DEFAULT": "#3283C8", + "vivid": "#2584d4", + "min": "#050d14", + "darkest": "#102b41", + "darker": "#1c486e", + "dark": "#27669b", + "light": "#609fd4", + "lighter": "#8ebbe1", + "lightest": "#bcd7ed", + "max": "#eaf3fa" }, "primary-contrast": { - "DEFAULT": "#fefefe", - "vivid": "#fefefe", + "DEFAULT": "#111111", + "vivid": "#111111", "min": "#fefefe", "darkest": "#fefefe", "darker": "#fefefe", "dark": "#fefefe", - "light": "#000000", + "light": "#111111", "lighter": "#111111", "lightest": "#111111", "max": "#111111" }, "secondary": { - "DEFAULT": "#BF7E06", - "vivid": "#c58000", - "min": "#130d99", - "darkest": "#3e2902", - "darker": "#694503", - "dark": "#946205", - "light": "#cd9b3e", - "lighter": "#dcb876", - "lightest": "#ead5ae", - "max": "#f9f2e6" + "DEFAULT": "#3283C8", + "vivid": "#2584d4", + "min": "#050d14", + "darkest": "#102b41", + "darker": "#1c486e", + "dark": "#27669b", + "light": "#609fd4", + "lighter": "#8ebbe1", + "lightest": "#bcd7ed", + "max": "#eaf3fa" }, "secondary-contrast": { "DEFAULT": "#111111", @@ -48,16 +48,16 @@ "max": "#111111" }, "accent": { - "DEFAULT": "#8C0404", - "vivid": "#900000", - "min": "#0e6666", - "darkest": "#2d0101", - "darker": "#4d0202", - "dark": "#6d0303", - "light": "#a63c3c", - "lighter": "#c07575", - "lightest": "#daadad", - "max": "#f4e6e6" + "DEFAULT": "#b75113", + "vivid": "#c14f09", + "min": "#120802", + "darkest": "#3b1a06", + "darker": "#652d0a", + "dark": "#8e3f0f", + "light": "#c77848", + "lighter": "#d79f7d", + "lightest": "#e8c6b2", + "max": "#f8eee7" }, "accent-contrast": { "DEFAULT": "#fefefe", @@ -66,49 +66,49 @@ "darkest": "#fefefe", "darker": "#fefefe", "dark": "#fefefe", - "light": "#fefefe", + "light": "#111111", "lighter": "#111111", "lightest": "#111111", "max": "#111111" }, "accent-warm": { - "DEFAULT": "#594B04", - "vivid": "#5d4e00", - "min": "#090766", - "darkest": "#1d1801", - "darker": "#312902", - "dark": "#453a03", - "light": "#7e743c", - "lighter": "#a49c75", - "lightest": "#c9c5ad", - "max": "#eeede6" + "DEFAULT": "#25869b", + "vivid": "#1b8ca5", + "min": "#040d0f", + "darkest": "#0c2c32", + "darker": "#144a55", + "dark": "#1d6878", + "light": "#56a1b2", + "lighter": "#87bcc8", + "lightest": "#b8d8df", + "max": "#e9f3f5" }, "accent-warm-contrast": { - "DEFAULT": "#fefefe", - "vivid": "#fefefe", + "DEFAULT": "#000000", + "vivid": "#111111", "min": "#fefefe", "darkest": "#fefefe", "darker": "#fefefe", "dark": "#fefefe", - "light": "#fefefe", + "light": "#111111", "lighter": "#111111", "lightest": "#111111", "max": "#111111" }, "accent-cool": { - "DEFAULT": "#908719", - "vivid": "#988e11", - "min": "#0e0d02", - "darkest": "#2f2c08", - "darker": "#4f4a0e", - "dark": "#706913", - "light": "#a9a24d", - "lighter": "#c2bd81", - "lightest": "#dbd8b4", - "max": "#f4f3e8" + "DEFAULT": "#1f839b", + "vivid": "#1689a4", + "min": "#030d0f", + "darkest": "#0a2b32", + "darker": "#114855", + "dark": "#186678", + "light": "#519fb2", + "lighter": "#84bbc8", + "lightest": "#b6d7df", + "max": "#e9f3f5" }, "accent-cool-contrast": { - "DEFAULT": "#111111", + "DEFAULT": "#000000", "vivid": "#111111", "min": "#fefefe", "darkest": "#fefefe", @@ -120,16 +120,16 @@ "max": "#111111" }, "base": { - "DEFAULT": "#CCCCCC", - "vivid": "#d1c7c7", - "min": "#141414", - "darkest": "#424242", - "darker": "#707070", - "dark": "#9e9e9e", - "light": "#d7d7d7", - "lighter": "#e3e3e3", - "lightest": "#eeeeee", - "max": "#fafafa" + "DEFAULT": "#c0c0c0", + "vivid": "#c6baba", + "min": "#131313", + "darkest": "#3e3e3e", + "darker": "#6a6a6a", + "dark": "#959595", + "light": "#cecece", + "lighter": "#dcdcdc", + "lightest": "#ebebeb", + "max": "#f9f9f9" }, "base-contrast": { "DEFAULT": "#111111", @@ -190,5 +190,29 @@ "lighter": "#111111", "lightest": "#111111", "max": "#111111" + }, + "table": { + "DEFAULT": "#c0c0c0", + "vivid": "#c6baba", + "min": "#131313", + "darkest": "#3e3e3e", + "darker": "#6a6a6a", + "dark": "#959595", + "light": "#cecece", + "lighter": "#dcdcdc", + "lightest": "#ebebeb", + "max": "#f9f9f9" + }, + "tablePallet-contrast": { + "DEFAULT": "#111111", + "vivid": "#111111", + "min": "#fefefe", + "darkest": "#fefefe", + "darker": "#fefefe", + "dark": "#111111", + "light": "#111111", + "lighter": "#111111", + "lightest": "#111111", + "max": "#111111" } } diff --git a/package-lock.json b/package-lock.json index 067a46d..1bb015a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "@gen3/commons-portal-app-base", "version": "0.1.0", "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.23.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.27.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -17,7 +17,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.23.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.27.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -41,7 +41,7 @@ "npm": ">=10.2.3" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.23.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.27.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } @@ -1742,10 +1742,9 @@ "integrity": "sha512-f7iw44q1EjBv3MNcHCGAgrW/QVyweaEouFsJzykPhTOGnZFSwFJRISToXornOmuAy7xUUGiVdqOLiykgZoYB8A==" }, "node_modules/@gen3/core": { - "version": "0.10.23", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.23.tgz", - "integrity": "sha512-Uinw7D+JdDvl1bvybNKQkq3HzAwuD3+J+8/liz8/ZIT3vlXAqfMV3zxt5HWadaRSsX3hHWC0Dxgcfj4Jsbh7RA==", - "license": "Apache-2.0", + "version": "0.10.27", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.27.tgz", + "integrity": "sha512-vFMND23FGdABBiD24h3DjtzR2xXMURl8JHdvvU4ag8lNgIfmNTGmSKPSnF7tSQlgiG9C27obDMSup1A9jP/gXw==", "peer": true, "dependencies": { "@reduxjs/toolkit": "1.9.5", @@ -1766,10 +1765,9 @@ } }, "node_modules/@gen3/frontend": { - "version": "0.10.23", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.23.tgz", - "integrity": "sha512-gWQrxcO5Dv74ukFf9XEJzyFQDIA/OB+j6nE79ZgFWsWCy0y01kcCD/RhJT7hRdqP0c4pGcUjovBe4mAG6Ewmyw==", - "license": "Apache-2.0", + "version": "0.10.27", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.27.tgz", + "integrity": "sha512-1bSDoT4d+9CWW2y+NMjj0g4sLvt3XiTYGwIYKTF1EMsbTuMQ8kbuKM9omRYCbUcFHdVH3Ij3/yOEiFHxAVLGIQ==", "dependencies": { "@fontsource/montserrat": "^4.5.12", "@fontsource/source-sans-pro": "^4.5.11", @@ -1913,11 +1911,10 @@ } }, "node_modules/@gen3/toolsff": { - "version": "0.10.23", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.23.tgz", - "integrity": "sha512-8o2nGL7p/Ga1I/ReEglamB8cDUkpH+bO+Ld99rHUnTYOhnKAjsxeOf7ePiI04/IV/AiHg8bTfnonLPKFSY0l0A==", + "version": "0.10.27", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.27.tgz", + "integrity": "sha512-mRyWM5Pg8SN/cGsoY1KW2CG/D1RRDkaYfpi626kCfHps2h74URGr1/L6Y8KuVCnXfUrvdJ76uPTIHxmaRp2DUw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@iconify/tools": "^2.1.2", "tinycolor2": "^1.6.0" diff --git a/package.json b/package.json index dbef4a5..bd86f32 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "getDRSToHostname": "node ./node_modules/@gen3/toolsff/dist/getDRSToHostname.esm.js --out=config/" }, "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.23.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.27.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -27,7 +27,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.23.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.27.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -47,7 +47,7 @@ "typescript": "5.0.2" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.23.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.27.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } From ebbdf331216a438960cb4202c909c70512a84b6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 11:16:14 -0500 Subject: [PATCH 02/19] --- (#1) updated-dependencies: - dependency-name: next dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 88 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1bb015a..ef6fa56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@types/lodash": "^4.14.202", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "next": "^14.1.0", + "next": "^14.1.1", "postcss": "^8.4.29", "postcss-loader": "^7.3.2", "postcss-preset-env": "^8.4.2", @@ -4492,9 +4492,9 @@ } }, "node_modules/@next/env": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz", - "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==" + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.1.tgz", + "integrity": "sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==" }, "node_modules/@next/mdx": { "version": "14.1.0", @@ -4525,9 +4525,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz", - "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.1.tgz", + "integrity": "sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==", "cpu": [ "arm64" ], @@ -4540,9 +4540,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz", - "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.1.tgz", + "integrity": "sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==", "cpu": [ "x64" ], @@ -4555,9 +4555,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz", - "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.1.tgz", + "integrity": "sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==", "cpu": [ "arm64" ], @@ -4570,9 +4570,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz", - "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.1.tgz", + "integrity": "sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==", "cpu": [ "arm64" ], @@ -4585,9 +4585,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz", - "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.1.tgz", + "integrity": "sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==", "cpu": [ "x64" ], @@ -4600,9 +4600,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz", - "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.1.tgz", + "integrity": "sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==", "cpu": [ "x64" ], @@ -4615,9 +4615,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz", - "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.1.tgz", + "integrity": "sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==", "cpu": [ "arm64" ], @@ -4630,9 +4630,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz", - "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.1.tgz", + "integrity": "sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==", "cpu": [ "ia32" ], @@ -4645,9 +4645,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz", - "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.1.tgz", + "integrity": "sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==", "cpu": [ "x64" ], @@ -17337,11 +17337,11 @@ "peer": true }, "node_modules/next": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz", - "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/next/-/next-14.1.1.tgz", + "integrity": "sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==", "dependencies": { - "@next/env": "14.1.0", + "@next/env": "14.1.1", "@swc/helpers": "0.5.2", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -17356,15 +17356,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.1.0", - "@next/swc-darwin-x64": "14.1.0", - "@next/swc-linux-arm64-gnu": "14.1.0", - "@next/swc-linux-arm64-musl": "14.1.0", - "@next/swc-linux-x64-gnu": "14.1.0", - "@next/swc-linux-x64-musl": "14.1.0", - "@next/swc-win32-arm64-msvc": "14.1.0", - "@next/swc-win32-ia32-msvc": "14.1.0", - "@next/swc-win32-x64-msvc": "14.1.0" + "@next/swc-darwin-arm64": "14.1.1", + "@next/swc-darwin-x64": "14.1.1", + "@next/swc-linux-arm64-gnu": "14.1.1", + "@next/swc-linux-arm64-musl": "14.1.1", + "@next/swc-linux-x64-gnu": "14.1.1", + "@next/swc-linux-x64-musl": "14.1.1", + "@next/swc-win32-arm64-msvc": "14.1.1", + "@next/swc-win32-ia32-msvc": "14.1.1", + "@next/swc-win32-x64-msvc": "14.1.1" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", diff --git a/package.json b/package.json index bd86f32..ad0846e 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@types/lodash": "^4.14.202", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "next": "^14.1.0", + "next": "^14.1.1", "postcss": "^8.4.29", "postcss-loader": "^7.3.2", "postcss-preset-env": "^8.4.2", From a63a6876821cac5a1af8014c8074010f381d14ce Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Tue, 2 Jul 2024 12:17:33 -0500 Subject: [PATCH 03/19] feat: update blurb on home page (#3) --- config/gen3/landingPage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/gen3/landingPage.json b/config/gen3/landingPage.json index 0755dad..d0ac75a 100644 --- a/config/gen3/landingPage.json +++ b/config/gen3/landingPage.json @@ -10,7 +10,7 @@ "splitarea": { "left": [ { - "text": "Fill in Description of the Data Platform" + "text": "PROMETHEUS stands for Project for Military Exposures and Toxin History Evaluation in US Service Members. The Prometheus Data Platform (PDP) is part of the President Biden Cancer Moonshot 2.0, which aims to mobilize a national effort to end cancer as we know it. The PDP is a robust data mesh designed to support existing and future Prometheus projects. PDP provides a hybrid governance structure, ensuring a secure and compliant data exchange through specialized software services, referred to as Gen3 Mesh Services." }, { "link": { From d20d6e92bfa3d7583ea70fe128474d38d32d52cf Mon Sep 17 00:00:00 2001 From: Craig Barnes Date: Wed, 3 Jul 2024 12:31:42 -0500 Subject: [PATCH 04/19] Update to version 0.10.31 (#4) * initial configuration * Chore/update to Gen3.2 version 0.10.30 (#29) * update config and dependencies * update config/package.json * add eslint/prettier * update typescript esplugin * update github ci * update Dockerfile * Chore/patch 0 10 31 (#36) * update config and dependencies * update config/package.json * add eslint/prettier * update typescript esplugin * update github ci * update Dockerfile * update to 0.10.31 * update to 0.10.31 * update dockerfile * update dockerfile * update dockerfile * update dockerfile * update dockerfile * update docker * testing update build ci * testing update build ci * Delete .idea directory * update docker * Update Dockerfile * update Docker * update config * update config * update colors * update footer --- .dockerignore | 1 + .env.development | 2 +- .env.production | 3 +- .eslintrc.js | 55 + .eslintrc.json | 3 + .github/workflows/ci.yaml | 23 +- .npmignore | 3 + .nvmrc | 1 + .prettierignore | 4 + .prettierrc | 6 + Dockerfile | 13 +- config/gen3/dictionary.json | 4 + config/gen3/explorer.json | 6 + config/gen3/footer.json | 4 +- config/{ => gen3}/modals.json | 0 config/gen3/navigation.json | 6 +- config/{ => gen3}/session.json | 0 config/gen3/siteConfig.json | 0 config/gen3/themeColors.json | 218 + config/{ => gen3}/themeFonts.json | 0 .../dictionary_icon_administrative.svg | 16 + .../dictionary_icon_analysis.svg | 13 + .../dictionary_icon_biospecimen.svg | 11 + .../dictionary_icon_clinical.svg | 13 + .../dictionary_icon_clinical_assessment.svg | 20 + .../dictionary_icon_data_file.svg | 15 + .../dictionary_icon_data_observations.svg | 14 + .../dictionary_icon_default.svg | 16 + .../dictionary_icon_experimental_methods.svg | 11 + .../dictionary_icon_imaging.svg | 11 + .../dictionary_icon_index_file.svg | 16 + .../dictionary_icon_medical_history.svg | 13 + .../dictionary_icon_metadata.svg | 16 + .../dictionary_icon_notation.svg | 12 + .../dictionary_icon_study_administration.svg | 16 + ...ictionary_icon_subject_characteristics.svg | 14 + config/icons/gen3.json | 71 +- config/siteConfig.json | 3 - package-lock.json | 7542 +++++++++++------ package.json | 29 +- src/lib/CohortBuilder/FileDetailsPanel.tsx | 171 + src/lib/Discovery/CustomCellRenderers.tsx | 57 +- src/lib/Discovery/CustomRowRenderers.tsx | 119 +- src/lib/Discovery/Filemap.tsx | 183 + src/lib/plugins/index.js | 51 +- src/pages/AISearch.tsx | 9 + src/pages/DataDictionary.tsx | 6 +- src/pages/Explorer.tsx | 6 +- src/pages/SamplePage.tsx | 2 +- src/pages/Submission.tsx | 7 + src/pages/{Workspaces.tsx => Workspace.tsx} | 0 src/pages/_app.tsx | 118 +- tailwind.config.js | 7 +- 53 files changed, 6247 insertions(+), 2713 deletions(-) create mode 100644 .dockerignore create mode 100644 .eslintrc.js create mode 100644 .eslintrc.json create mode 100644 .npmignore create mode 100644 .nvmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 config/gen3/dictionary.json rename config/{ => gen3}/modals.json (100%) rename config/{ => gen3}/session.json (100%) create mode 100644 config/gen3/siteConfig.json create mode 100644 config/gen3/themeColors.json rename config/{ => gen3}/themeFonts.json (100%) create mode 100755 config/icons/dataDictionary/dictionary_icon_administrative.svg create mode 100755 config/icons/dataDictionary/dictionary_icon_analysis.svg create mode 100755 config/icons/dataDictionary/dictionary_icon_biospecimen.svg create mode 100755 config/icons/dataDictionary/dictionary_icon_clinical.svg create mode 100755 config/icons/dataDictionary/dictionary_icon_clinical_assessment.svg create mode 100755 config/icons/dataDictionary/dictionary_icon_data_file.svg create mode 100644 config/icons/dataDictionary/dictionary_icon_data_observations.svg create mode 100644 config/icons/dataDictionary/dictionary_icon_default.svg create mode 100644 config/icons/dataDictionary/dictionary_icon_experimental_methods.svg create mode 100644 config/icons/dataDictionary/dictionary_icon_imaging.svg create mode 100644 config/icons/dataDictionary/dictionary_icon_index_file.svg create mode 100755 config/icons/dataDictionary/dictionary_icon_medical_history.svg create mode 100755 config/icons/dataDictionary/dictionary_icon_metadata.svg create mode 100755 config/icons/dataDictionary/dictionary_icon_notation.svg create mode 100644 config/icons/dataDictionary/dictionary_icon_study_administration.svg create mode 100644 config/icons/dataDictionary/dictionary_icon_subject_characteristics.svg delete mode 100644 config/siteConfig.json create mode 100644 src/lib/CohortBuilder/FileDetailsPanel.tsx create mode 100644 src/lib/Discovery/Filemap.tsx create mode 100644 src/pages/AISearch.tsx create mode 100644 src/pages/Submission.tsx rename src/pages/{Workspaces.tsx => Workspace.tsx} (100%) diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +node_modules diff --git a/.env.development b/.env.development index 64a2760..25ed957 100644 --- a/.env.development +++ b/.env.development @@ -1,2 +1,2 @@ GEN3_COMMONS_NAME=gen3 -NEXT_PUBLIC_GEN3_API=https://localhost:3010 +NEXT_PUBLIC_GEN3_API=https://prometheus.data-commons.org diff --git a/.env.production b/.env.production index fa20fe4..25ed957 100644 --- a/.env.production +++ b/.env.production @@ -1,3 +1,2 @@ GEN3_COMMONS_NAME=gen3 -NEXT_PUBLIC_GEN3_API=https://localhost/ -NEXT_PUBLIC_GEN3_DOMAIN=https://localhost/ +NEXT_PUBLIC_GEN3_API=https://prometheus.data-commons.org diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..edf6734 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,55 @@ +module.exports = { + env: { + browser: true, + es2021: true, + node: true, + }, + extends: [ + 'eslint:recommended', + 'plugin:jsx-a11y/recommended', + 'plugin:react/recommended', + 'plugin:react-hooks/recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:@next/next/recommended', + 'prettier', + ], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 12, + sourceType: 'module', + }, + plugins: ['jsx-a11y', 'react', 'react-hooks', '@typescript-eslint'], + rules: { + 'no-underscore-dangle': 'off', + 'import/prefer-default-export': 'off', + 'linebreak-style': ['error', 'unix'], + '@typescript-eslint/quotes': ['warn', 'single'], + quotes: ['warn', 'single'], + 'jsx-quotes': ['warn', 'prefer-double'], + semi: ['error', 'always'], + 'prefer-destructuring': ['error', { object: true, array: false }], + 'react/jsx-fragments': ['warn', 'element'], + // disable these because we're using React 17+ with the jsx transform + 'react/jsx-uses-react': 'off', + 'react/react-in-jsx-scope': 'off', + }, + overrides: [ + { + files: ['**/*.tsx'], + rules: { + 'react/prop-types': 'off', + }, + }, + ], + settings: { + react: { + version: 'detect', + }, + next: { + rootDir: './', + }, + }, +}; diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 77d0dc9..642f40d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,13 +4,16 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v3 - with: - node-version: 20 - - name: Setup npm - run: npm install -g npm@10.2.4 - - name: Install modules - run: npm ci - - name: Run ESLint - run: npm run lint + - uses: actions/checkout@v2 + - uses: actions/setup-node@v3.4.1 + with: + node-version: 20.11.0 + - name: install npm version + run: npm install -g npm + - name: Get Version + run: npm -v + - name: Install modules + + run: npm ci + - name: Run ESLint + run: npm run lint diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..10900e7 --- /dev/null +++ b/.npmignore @@ -0,0 +1,3 @@ +.DS_Store +node_modules +.next/cache/* diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..209e3ef --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..78960da --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +node_modules +.next +public +dist diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..65a45ac --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "tabWidth": 2, + "useTabs": false, + "trailingComma": "all", + "singleQuote": true +} diff --git a/Dockerfile b/Dockerfile index e5c2456..928e5c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,12 +3,10 @@ # for Macbook silicon M1/m2 uncomment the following lines and comment quay.io/cdis/ubuntu:20.04: #FROM arm64v8/ubuntu:20.04 as build -FROM quay.io/cdis/ubuntu:20.04 as build +FROM quay.io/cdis/ubuntu:20.04 AS build ARG NODE_VERSION=20 -ENV DEBIAN_FRONTEND=noninteractive - ARG BASE_PATH ARG NEXT_PUBLIC_PORTAL_BASENAME ENV NPM_CONFIG_PREFIX=/home/node/.npm-global @@ -24,20 +22,13 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ git \ gnupg \ - nginx \ - python3 \ - time \ - vim \ && mkdir -p /etc/apt/keyrings \ && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ && apt-get update \ && apt-get install -y nodejs \ && apt-get clean \ - && rm -rf /var/src/apt/lists/* \ - && ln -sf /dev/stdout /var/log/nginx/access.log \ - && ln -sf /dev/stderr /var/log/nginx/error.log \ - && npm install -g npm@10.2.4 + && npm install -g npm@10.5.2 RUN addgroup --system --gid 1001 nextjs && adduser --system --uid 1001 nextjs COPY ./package.json ./package-lock.json ./ diff --git a/config/gen3/dictionary.json b/config/gen3/dictionary.json new file mode 100644 index 0000000..9e29f7c --- /dev/null +++ b/config/gen3/dictionary.json @@ -0,0 +1,4 @@ +{ +"showGraph": false, +"showDownloads": false +} diff --git a/config/gen3/explorer.json b/config/gen3/explorer.json index afee5ea..fe821a2 100644 --- a/config/gen3/explorer.json +++ b/config/gen3/explorer.json @@ -76,6 +76,12 @@ }, "table": { "enabled": true, + "detailsConfig": { + "panel": "default", + "mode" : "click", + "idField": "submitter_id", + "title": "Details" + }, "fields": [ "submitter_id", "sex", diff --git a/config/gen3/footer.json b/config/gen3/footer.json index 57800bb..7584891 100644 --- a/config/gen3/footer.json +++ b/config/gen3/footer.json @@ -5,13 +5,13 @@ "footerRightLogos": [ [ { - "logo": "/ff/icons/gen3.png", + "logo": "/icons/gen3.png", "width": 132, "height": 60, "description": "Gen3 Logo" }, { - "logo": "/ff/icons/createdby.png", + "logo": "/icons/createdby.png", "width": 170, "height": 60, "description": "Created by CTDS" diff --git a/config/modals.json b/config/gen3/modals.json similarity index 100% rename from config/modals.json rename to config/gen3/modals.json diff --git a/config/gen3/navigation.json b/config/gen3/navigation.json index b144e1f..008c02b 100644 --- a/config/gen3/navigation.json +++ b/config/gen3/navigation.json @@ -1,6 +1,10 @@ { - "type": "horizontal", "navigation": { + "classNames": { + "root": "pl-1 mr-6 bg-base-max text-primary opacity-100 hover:opacity-100", + "item": "py-2 px-4 hover:bg-base-lightest hover:text-base-contrast", + "navigationPanel": "bg-base-max text-primary" + }, "logo": { "src": "/icons/gen3-dark.svg", "height": 128, diff --git a/config/session.json b/config/gen3/session.json similarity index 100% rename from config/session.json rename to config/gen3/session.json diff --git a/config/gen3/siteConfig.json b/config/gen3/siteConfig.json new file mode 100644 index 0000000..e69de29 diff --git a/config/gen3/themeColors.json b/config/gen3/themeColors.json new file mode 100644 index 0000000..26e8e0b --- /dev/null +++ b/config/gen3/themeColors.json @@ -0,0 +1,218 @@ +{ + "primary": { + "max": "#eaf3fa", + "lightest": "#bcd7ed", + "lighter": "#8ebbe1", + "light": "#609fd4", + "DEFAULT": "#3283C8", + "vivid": "#2584d4", + "dark": "#27669b", + "darker": "#1c486e", + "darkest": "#102b41", + "min": "#050d14" + }, + "primary-contrast": { + "max": "#111111", + "lightest": "#111111", + "lighter": "#111111", + "light": "#111111", + "DEFAULT": "#111111", + "vivid": "#111111", + "dark": "#fefefe", + "darker": "#fefefe", + "darkest": "#fefefe", + "min": "#fefefe" + }, + "secondary": { + "max": "#eaf3fa", + "lightest": "#bcd7ed", + "lighter": "#8ebbe1", + "light": "#609fd4", + "DEFAULT": "#3283C8", + "vivid": "#2584d4", + "dark": "#27669b", + "darker": "#1c486e", + "darkest": "#102b41", + "min": "#050d14" + }, + "secondary-contrast": { + "max": "#111111", + "lightest": "#111111", + "lighter": "#111111", + "light": "#111111", + "DEFAULT": "#111111", + "vivid": "#111111", + "dark": "#fefefe", + "darker": "#fefefe", + "darkest": "#fefefe", + "min": "#fefefe" + }, + "accent": { + "max": "#f8eee7", + "lightest": "#e8c6b2", + "lighter": "#d79f7d", + "light": "#c77848", + "DEFAULT": "#b75113", + "vivid": "#c14f09", + "dark": "#8e3f0f", + "darker": "#652d0a", + "darkest": "#3b1a06", + "min": "#120802" + }, + "accent-contrast": { + "max": "#111111", + "lightest": "#111111", + "lighter": "#111111", + "light": "#111111", + "DEFAULT": "#fefefe", + "vivid": "#fefefe", + "dark": "#fefefe", + "darker": "#fefefe", + "darkest": "#fefefe", + "min": "#fefefe" + }, + "accent-warm": { + "max": "#e9f3f5", + "lightest": "#b8d8df", + "lighter": "#87bcc8", + "light": "#56a1b2", + "DEFAULT": "#25869b", + "vivid": "#1b8ca5", + "dark": "#1d6878", + "darker": "#144a55", + "darkest": "#0c2c32", + "min": "#040d0f" + }, + "accent-warm-contrast": { + "max": "#111111", + "lightest": "#111111", + "lighter": "#111111", + "light": "#111111", + "DEFAULT": "#000000", + "vivid": "#111111", + "dark": "#fefefe", + "darker": "#fefefe", + "darkest": "#fefefe", + "min": "#fefefe" + }, + "accent-cool": { + "max": "#e9f3f5", + "lightest": "#b6d7df", + "lighter": "#84bbc8", + "light": "#519fb2", + "DEFAULT": "#1f839b", + "vivid": "#1689a4", + "dark": "#186678", + "darker": "#114855", + "darkest": "#0a2b32", + "min": "#030d0f" + }, + "accent-cool-contrast": { + "max": "#111111", + "lightest": "#111111", + "lighter": "#111111", + "light": "#111111", + "DEFAULT": "#000000", + "vivid": "#111111", + "dark": "#fefefe", + "darker": "#fefefe", + "darkest": "#fefefe", + "min": "#fefefe" + }, + "base": { + "max": "#f9f9f9", + "lightest": "#ebebeb", + "lighter": "#dcdcdc", + "light": "#cecece", + "DEFAULT": "#c0c0c0", + "vivid": "#c6baba", + "dark": "#959595", + "darker": "#6a6a6a", + "darkest": "#3e3e3e", + "min": "#131313" + }, + "base-contrast": { + "max": "#111111", + "lightest": "#111111", + "lighter": "#111111", + "light": "#111111", + "DEFAULT": "#111111", + "vivid": "#111111", + "dark": "#111111", + "darker": "#fefefe", + "darkest": "#fefefe", + "min": "#fefefe" + }, + "utility": { + "link": "#155276", + "success": "#318f71", + "warning": "#d9a214", + "error": "#8a0e2a", + "emergency": "#6a0019", + "info": "#1c5e86", + "category1": "#1c5e86", + "category2": "#d1541d", + "category3": "#564990", + "category4": "#4dbc97" + }, + "utility-contrast": { + "link": "#f1f1f1", + "success": "#000000", + "warning": "#1b1b1b", + "error": "#f1f1f1", + "emergency": "#f1f1f1", + "info": "#f1f1f1", + "category1": "#f1f1f1", + "category2": "#000000", + "category3": "#f1f1f1", + "category4": "#1b1b1b" + }, + "chart": { + "max": "#e7f4f6", + "lightest": "#b0dde0", + "lighter": "#7ac5cb", + "light": "#43adb6", + "DEFAULT": "#0d95A1", + "vivid": "#049caa", + "dark": "#0a737d", + "darker": "#075259", + "darkest": "#043034", + "min": "#010f10" + }, + "chart-contrast": { + "max": "#111111", + "lightest": "#111111", + "lighter": "#111111", + "light": "#111111", + "DEFAULT": "#111111", + "vivid": "#111111", + "dark": "#fefefe", + "darker": "#fefefe", + "darkest": "#fefefe", + "min": "#fefefe" + }, + "table": { + "max": "#f9f9f9", + "lightest": "#ebebeb", + "lighter": "#dcdcdc", + "light": "#cecece", + "DEFAULT": "#c0c0c0", + "vivid": "#c6baba", + "dark": "#959595", + "darker": "#6a6a6a", + "darkest": "#3e3e3e", + "min": "#131313" + }, + "tablePallet-contrast": { + "max": "#111111", + "lightest": "#111111", + "lighter": "#111111", + "light": "#111111", + "DEFAULT": "#111111", + "vivid": "#111111", + "dark": "#111111", + "darker": "#fefefe", + "darkest": "#fefefe", + "min": "#fefefe" + } +} diff --git a/config/themeFonts.json b/config/gen3/themeFonts.json similarity index 100% rename from config/themeFonts.json rename to config/gen3/themeFonts.json diff --git a/config/icons/dataDictionary/dictionary_icon_administrative.svg b/config/icons/dataDictionary/dictionary_icon_administrative.svg new file mode 100755 index 0000000..34b2184 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_administrative.svg @@ -0,0 +1,16 @@ + + + + icon-administrative + Created with Sketch. + + + + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_analysis.svg b/config/icons/dataDictionary/dictionary_icon_analysis.svg new file mode 100755 index 0000000..df8b2ec --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_analysis.svg @@ -0,0 +1,13 @@ + + + + icon_analysis + Created with Sketch. + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_biospecimen.svg b/config/icons/dataDictionary/dictionary_icon_biospecimen.svg new file mode 100755 index 0000000..bdeea3b --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_biospecimen.svg @@ -0,0 +1,11 @@ + + + + icon_Biospecimen + Created with Sketch. + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_clinical.svg b/config/icons/dataDictionary/dictionary_icon_clinical.svg new file mode 100755 index 0000000..69d2882 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_clinical.svg @@ -0,0 +1,13 @@ + + + + hospital + Created with Sketch. + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_clinical_assessment.svg b/config/icons/dataDictionary/dictionary_icon_clinical_assessment.svg new file mode 100755 index 0000000..49756c8 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_clinical_assessment.svg @@ -0,0 +1,20 @@ + + + + icon_clinical_assessment + Created with Sketch. + + + + + + + + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_data_file.svg b/config/icons/dataDictionary/dictionary_icon_data_file.svg new file mode 100755 index 0000000..0284e37 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_data_file.svg @@ -0,0 +1,15 @@ + + + + icon_data_file + Created with Sketch. + + + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_data_observations.svg b/config/icons/dataDictionary/dictionary_icon_data_observations.svg new file mode 100644 index 0000000..5b80e47 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_data_observations.svg @@ -0,0 +1,14 @@ + + + + Group 22 + Created with Sketch. + + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_default.svg b/config/icons/dataDictionary/dictionary_icon_default.svg new file mode 100644 index 0000000..90f8248 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_default.svg @@ -0,0 +1,16 @@ + + + + Group 47 + Created with Sketch. + + + + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_experimental_methods.svg b/config/icons/dataDictionary/dictionary_icon_experimental_methods.svg new file mode 100644 index 0000000..cc0b4fc --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_experimental_methods.svg @@ -0,0 +1,11 @@ + + + + Group 23 + Created with Sketch. + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_imaging.svg b/config/icons/dataDictionary/dictionary_icon_imaging.svg new file mode 100644 index 0000000..8a96d61 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_imaging.svg @@ -0,0 +1,11 @@ + + + + Group 19 + Created with Sketch. + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_index_file.svg b/config/icons/dataDictionary/dictionary_icon_index_file.svg new file mode 100644 index 0000000..dab9dd4 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_index_file.svg @@ -0,0 +1,16 @@ + + + + Group + Created with Sketch. + + + + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_medical_history.svg b/config/icons/dataDictionary/dictionary_icon_medical_history.svg new file mode 100755 index 0000000..69d2882 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_medical_history.svg @@ -0,0 +1,13 @@ + + + + hospital + Created with Sketch. + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_metadata.svg b/config/icons/dataDictionary/dictionary_icon_metadata.svg new file mode 100755 index 0000000..5f40962 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_metadata.svg @@ -0,0 +1,16 @@ + + + + icon_metadata + Created with Sketch. + + + + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_notation.svg b/config/icons/dataDictionary/dictionary_icon_notation.svg new file mode 100755 index 0000000..d546f7d --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_notation.svg @@ -0,0 +1,12 @@ + + + + icon_notation + Created with Sketch. + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_study_administration.svg b/config/icons/dataDictionary/dictionary_icon_study_administration.svg new file mode 100644 index 0000000..3fce02a --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_study_administration.svg @@ -0,0 +1,16 @@ + + + + Group 21 + Created with Sketch. + + + + + + + + + + + diff --git a/config/icons/dataDictionary/dictionary_icon_subject_characteristics.svg b/config/icons/dataDictionary/dictionary_icon_subject_characteristics.svg new file mode 100644 index 0000000..3da1d98 --- /dev/null +++ b/config/icons/dataDictionary/dictionary_icon_subject_characteristics.svg @@ -0,0 +1,14 @@ + + + + Group 20 + Created with Sketch. + + + + + + + + + diff --git a/config/icons/gen3.json b/config/icons/gen3.json index 95fbc67..21bf7fd 100644 --- a/config/icons/gen3.json +++ b/config/icons/gen3.json @@ -1,6 +1,6 @@ { "prefix": "gen3", - "lastModified": 1708125912, + "lastModified": 1718898014, "icons": { "analysis": { "body": "", @@ -29,13 +29,65 @@ "width": 489.709, "height": 489.709 }, + "dictionary-icon-administrative": { + "body": "" + }, + "dictionary-icon-analysis": { + "body": "", + "height": 21 + }, + "dictionary-icon-biospecimen": { + "body": "" + }, + "dictionary-icon-clinical": { + "body": "" + }, + "dictionary-icon-clinical-assessment": { + "body": "" + }, + "dictionary-icon-data-file": { + "body": "" + }, + "dictionary-icon-data-observations": { + "body": "" + }, + "dictionary-icon-default": { + "body": "", + "height": 21 + }, + "dictionary-icon-experimental-methods": { + "body": "" + }, + "dictionary-icon-imaging": { + "body": "" + }, + "dictionary-icon-index-file": { + "body": "" + }, + "dictionary-icon-medical-history": { + "body": "" + }, + "dictionary-icon-metadata": { + "body": "" + }, + "dictionary-icon-notation": { + "body": "" + }, + "dictionary-icon-study-administration": { + "body": "" + }, + "dictionary-icon-subject-characteristics": { + "body": "" + }, "download": { "body": "", "width": 24, "height": 24 }, "exploration": { - "body": "" + "body": "", + "width": 512, + "height": 512 }, "gen3": { "body": "", @@ -63,16 +115,21 @@ "height": 511.999 }, "upload": { - "body": "" + "body": "", + "width": 512, + "height": 512 }, "user": { "body": "", - "width": 448 + "width": 448, + "height": 512 }, "workspace": { - "body": "" + "body": "", + "width": 512, + "height": 512 } }, - "width": 512, - "height": 512 + "width": 20, + "height": 20 } diff --git a/config/siteConfig.json b/config/siteConfig.json deleted file mode 100644 index 44fcd28..0000000 --- a/config/siteConfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "commons": "gen3" -} diff --git a/package-lock.json b/package-lock.json index ef6fa56..13ab56d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,23 +1,23 @@ { - "name": "@gen3/commons-portal-app-base", - "version": "0.1.0", + "name": "prometheus-data-platform", + "version": "0.10.31", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@gen3/commons-portal-app-base", - "version": "0.1.0", + "name": "prometheus-data-platform", + "version": "0.10.31", "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.27.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.31.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", - "@next/mdx": "^14.1.0", + "@next/mdx": "^14.2.3", "@types/mdx": "^2.0.11", "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.27.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.31.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -25,10 +25,19 @@ "@types/lodash": "^4.14.202", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "next": "^14.1.1", + "@typescript-eslint/eslint-plugin": "^7.12.0", + "eslint": "8.57.0", + "eslint-config-next": "14.2.3", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "next": "^14.2.3", "postcss": "^8.4.29", "postcss-loader": "^7.3.2", "postcss-preset-env": "^8.4.2", + "prettier": "^2.7.1", "react": "^18.2.0", "react-dom": "18.2.0", "tailwindcss": "^3.3.7", @@ -41,7 +50,7 @@ "npm": ">=10.2.3" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.27.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.31.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } @@ -1525,15 +1534,6 @@ "postcss": "^8.4" } }, - "node_modules/@emnapi/runtime": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", - "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", @@ -1683,6 +1683,107 @@ "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", "peer": true }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@floating-ui/core": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", @@ -1742,9 +1843,9 @@ "integrity": "sha512-f7iw44q1EjBv3MNcHCGAgrW/QVyweaEouFsJzykPhTOGnZFSwFJRISToXornOmuAy7xUUGiVdqOLiykgZoYB8A==" }, "node_modules/@gen3/core": { - "version": "0.10.27", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.27.tgz", - "integrity": "sha512-vFMND23FGdABBiD24h3DjtzR2xXMURl8JHdvvU4ag8lNgIfmNTGmSKPSnF7tSQlgiG9C27obDMSup1A9jP/gXw==", + "version": "0.10.31", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.31.tgz", + "integrity": "sha512-fxaBN7B9y5WuuZKtLcs0owDqotPhc8QUFv9B8vCl0sZPRdMiKqezDV8PlFDK7WPBJUypDf4vYizS74OXADZpsA==", "peer": true, "dependencies": { "@reduxjs/toolkit": "1.9.5", @@ -1765,13 +1866,13 @@ } }, "node_modules/@gen3/frontend": { - "version": "0.10.27", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.27.tgz", - "integrity": "sha512-1bSDoT4d+9CWW2y+NMjj0g4sLvt3XiTYGwIYKTF1EMsbTuMQ8kbuKM9omRYCbUcFHdVH3Ij3/yOEiFHxAVLGIQ==", + "version": "0.10.31", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.31.tgz", + "integrity": "sha512-tAujRvtwHM7ptrwp03Jgul5BygRu1kZhCDDNtdKCOXx9IKodmfadK6vFPXsynHtXkK5bW416Hgr3VdErfC57GA==", "dependencies": { "@fontsource/montserrat": "^4.5.12", "@fontsource/source-sans-pro": "^4.5.11", - "@graphiql/react": "^0.20.2", + "@graphiql/react": "^0.22.1", "@iconify/react": "^4.0.1", "@mantine/core": "^6.0.21", "@mantine/form": "^6.0.21", @@ -1781,7 +1882,7 @@ "@mantine/notifications": "^6.0.21", "@mdx-js/loader": "^2.1.5", "@mdx-js/mdx": "^2.1.5", - "@next/mdx": "^14.1.0", + "@next/mdx": "^14.1.1", "@reduxjs/toolkit": "^1.9.5", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", @@ -1789,6 +1890,7 @@ "@tailwindcss/typography": "^0.5.7", "@types/dompurify": "^3.0.3", "chart.js": "^4.0.1", + "colorette": "^2.0.20", "cookies-next": "^2.1.1", "default-composer": "^0.6.0", "dompurify": "^3.0.5", @@ -1803,9 +1905,9 @@ "jose": "^4.13.1", "js-cookie": "^3.0.5", "jsonpath-plus": "^8.0.0", - "mantine-react-table": "^1.3.3", + "mantine-react-table": "^1.3.4", "minisearch": "^6.3.0", - "next": "^14.1.0", + "next": "^14.2.3", "next-compose-plugins": "^2.2.1", "next-images": "^1.8.5", "pluralize": "^8.0.0", @@ -1846,6 +1948,33 @@ "typescript": "5.0.2" } }, + "node_modules/@gen3/frontend/node_modules/@graphiql/react": { + "version": "0.22.4", + "resolved": "https://registry.npmjs.org/@graphiql/react/-/react-0.22.4.tgz", + "integrity": "sha512-FsupNjAUJ17qhdyCjKo150wpNH7gr0ScAm/Rmk7VHP4Mh0Osid+1bKLPtXEOjGI+InuTPSKhJw3Zbm8dD3+o1A==", + "dependencies": { + "@graphiql/toolkit": "^0.9.1", + "@headlessui/react": "^1.7.15", + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-dropdown-menu": "^2.0.5", + "@radix-ui/react-tooltip": "^1.0.6", + "@radix-ui/react-visually-hidden": "^1.0.3", + "@types/codemirror": "^5.60.8", + "clsx": "^1.2.1", + "codemirror": "^5.65.3", + "codemirror-graphql": "^2.0.12", + "copy-to-clipboard": "^3.2.0", + "framer-motion": "^6.5.1", + "graphql-language-service": "^5.2.1", + "markdown-it": "^14.1.0", + "set-value": "^4.1.0" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/@gen3/frontend/node_modules/@mdx-js/loader": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.3.0.tgz", @@ -1872,6 +2001,11 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.84.tgz", "integrity": "sha512-mtn6ixzrUK5IMf6gyyMVUsm0TIeF3IYpUr3i0HHTuPJVbdZ6kc93poZ+wCkFNtxXoP/tyGrdVPOL6/WqGXjfXw==" }, + "node_modules/@gen3/frontend/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/@gen3/frontend/node_modules/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", @@ -1890,6 +2024,35 @@ "cookie": "^0.4.0" } }, + "node_modules/@gen3/frontend/node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/@gen3/frontend/node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/@gen3/frontend/node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" + }, "node_modules/@gen3/frontend/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -1910,10 +2073,15 @@ "url": "https://github.com/sponsors/dcastil" } }, + "node_modules/@gen3/frontend/node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" + }, "node_modules/@gen3/toolsff": { - "version": "0.10.27", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.27.tgz", - "integrity": "sha512-mRyWM5Pg8SN/cGsoY1KW2CG/D1RRDkaYfpi626kCfHps2h74URGr1/L6Y8KuVCnXfUrvdJ76uPTIHxmaRp2DUw==", + "version": "0.10.31", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.31.tgz", + "integrity": "sha512-Oaqf9RcS+XmDA+Julit9e/MaZ2LCRIEUaBfqruceF0XNT5e+8iA0UroO157D3dcJFRLgCjliBHK9PpPWCwXQDw==", "dev": true, "dependencies": { "@iconify/tools": "^2.1.2", @@ -1991,6 +2159,41 @@ "react-dom": "^16 || ^17 || ^18" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, "node_modules/@iconify/react": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/@iconify/react/-/react-4.1.1.tgz", @@ -2086,31 +2289,6 @@ "@img/sharp-libvips-darwin-arm64": "1.0.1" } }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz", - "integrity": "sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.1" - } - }, "node_modules/@img/sharp-libvips-darwin-arm64": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz", @@ -2132,561 +2310,201 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz", - "integrity": "sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "macos": ">=10.13", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=12" } }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz", - "integrity": "sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz", - "integrity": "sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz", - "integrity": "sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, "engines": { - "glibc": ">=2.28", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz", - "integrity": "sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "glibc": ">=2.26", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz", - "integrity": "sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz", - "integrity": "sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], "engines": { - "musl": ">=1.2.2", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz", - "integrity": "sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "peer": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.1" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz", - "integrity": "sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.1" + "node": ">=8" } }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz", - "integrity": "sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "glibc": ">=2.28", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.1" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz", - "integrity": "sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], "engines": { - "glibc": ">=2.26", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.1" + "node": ">=8" } }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz", - "integrity": "sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "peer": true, + "dependencies": { + "p-locate": "^4.1.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.1" + "engines": { + "node": ">=8" } }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz", - "integrity": "sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "peer": true, + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "musl": ">=1.2.2", - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" + "node": ">=6" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@img/sharp-wasm32": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz", - "integrity": "sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==", - "cpu": [ - "wasm32" - ], - "optional": true, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "peer": true, "dependencies": { - "@emnapi/runtime": "^0.45.0" + "p-limit": "^2.2.0" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node": ">=8" } }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz", - "integrity": "sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "peer": true, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node": ">=8" } }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.33.2", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz", - "integrity": "sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "peer": true, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0", - "yarn": ">=3.2.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node": ">=8" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "peer": true, "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "peer": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "peer": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -4492,14 +4310,78 @@ } }, "node_modules/@next/env": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.1.tgz", - "integrity": "sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==" + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.4.tgz", + "integrity": "sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.3.tgz", + "integrity": "sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==", + "dev": true, + "dependencies": { + "glob": "10.3.10" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } }, "node_modules/@next/mdx": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-14.1.0.tgz", - "integrity": "sha512-YLYsViq91+H8+3oCtK1iuMWdeN14K70Hy6/tYScY+nfo5bQ84A/A+vA6UdNC9MkbWQ/373hQubx2p4JvUjlb2Q==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-14.2.4.tgz", + "integrity": "sha512-eklTNNoH08xGy9UiKcohZmoLhmHAYaYm5ndPGQqJybaeNErgYL8fmp2tk5DRD0L54DNqMz97oN+CAEHqfqIVcw==", "dependencies": { "source-map": "^0.7.0" }, @@ -4525,9 +4407,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.1.tgz", - "integrity": "sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.4.tgz", + "integrity": "sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg==", "cpu": [ "arm64" ], @@ -4539,136 +4421,16 @@ "node": ">= 10" } }, - "node_modules/@next/swc-darwin-x64": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.1.tgz", - "integrity": "sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.1.tgz", - "integrity": "sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.1.tgz", - "integrity": "sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.1.tgz", - "integrity": "sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.1.tgz", - "integrity": "sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.1.tgz", - "integrity": "sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.1.tgz", - "integrity": "sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.1.tgz", - "integrity": "sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "node_modules/@nodelib/fs.stat": { @@ -5642,6 +5404,12 @@ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", + "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", + "dev": true + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -5668,11 +5436,17 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, "node_modules/@swc/helpers": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", - "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", "dependencies": { + "@swc/counter": "^0.1.3", "tslib": "^2.4.0" } }, @@ -6142,6 +5916,12 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "node_modules/@types/lodash": { "version": "4.14.202", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", @@ -6284,2388 +6064,3670 @@ "@types/node": "*" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", + "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/type-utils": "7.15.0", + "@typescript-eslint/utils": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", + "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", + "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", + "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.15.0", + "@typescript-eslint/utils": "7.15.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", + "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", + "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/visitor-keys": "7.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", + "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.15.0", + "@typescript-eslint/types": "7.15.0", + "@typescript-eslint/typescript-estree": "7.15.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", + "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.15.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "peer": true + }, + "node_modules/abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", + "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==", + "peer": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "devOptional": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/almost-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", + "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==", + "peer": true + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-bounds": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", + "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==", + "peer": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-normalize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", + "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", + "peer": true, + "dependencies": { + "array-bounds": "^1.0.0" + } + }, + "node_modules/array-range": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", + "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==", + "peer": true + }, + "node_modules/array-rearrange": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", + "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==", + "peer": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", + "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/babel-jest": { + "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, + "peer": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-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, + "peer": 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.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, + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "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, + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "peer": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "node_modules/binary-search-bounds": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", + "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==", "peer": true }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "node_modules/bit-twiddle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", + "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==", "peer": true }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "node_modules/bitmap-sdf": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", + "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", "peer": true }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "node_modules/bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", "peer": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" } }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "node_modules/bl/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "peer": true }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "node_modules/bl/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "peer": true, "dependencies": { - "@xtuc/long": "4.2.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "node_modules/bl/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "peer": true }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "node_modules/bl/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "safe-buffer": "~5.1.0" } }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "peer": true, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "peer": true, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "peer": true, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "peer": true - }, - "node_modules/abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==", - "peer": true - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, "bin": { - "acorn": "bin/acorn" + "browserslist": "cli.js" }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "devOptional": true, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 6" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "node-int64": "^0.4.0" } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" } }, - "node_modules/almost-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==", + "node_modules/buffer-from": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz", + "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==", "peer": true }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "peer": true, "dependencies": { - "type-fest": "^0.21.3" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "peer": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "engines": { - "node": ">= 8" + "node": ">= 6" } }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "node_modules/caniuse-lite": { + "version": "1.0.30001591", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", + "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/canvas-fit": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", + "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", + "peer": true, "dependencies": { - "sprintf-js": "~1.0.2" + "element-size": "^1.1.1" } }, - "node_modules/aria-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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": { - "tslib": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/array-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==", - "peer": true - }, - "node_modules/array-find-index": { + "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/array-normalize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "peer": true, - "dependencies": { - "array-bounds": "^1.0.0" + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/array-range": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==", - "peer": true - }, - "node_modules/array-rearrange": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==", - "peer": true + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", - "bin": { - "astring": "bin/astring" + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" + "node_modules/chart.js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.1.tgz", + "integrity": "sha512-C74QN1bxwV1v2PEujhmKjOZ7iUM4w6BWs23Md/6aOZZSlwMzeCIDGuZay++rBgChYru7/+QFeoQW0fQoP534Dg==", + "dependencies": { + "@kurkle/color": "^0.3.0" }, "engines": { - "node": ">= 4.5.0" + "pnpm": ">=7" } }, - "node_modules/autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, "dependencies": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">= 6" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" } }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, - "peer": true, "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "peer": true, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=8" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "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, - "peer": true, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dependencies": { - "@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" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/babel-plugin-jest-hoist": { - "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==", + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, "engines": { - "node": ">=10", - "npm": ">=6" + "node": ">=6.0" } }, - "node_modules/babel-preset-current-node-syntax": { + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "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, + "peer": true + }, + "node_modules/clamp": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==", + "peer": true + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "peer": true, "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=12" } }, - "node_modules/babel-preset-jest": { - "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==", + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "peer": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/codemirror": { + "version": "5.65.16", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.16.tgz", + "integrity": "sha512-br21LjYmSlVL0vFCPWPfhzUCT34FM/pAdK7rRIZwa0rrtrIdotvP4Oh4GUHsu2E3IrQMCfRkL/fN3ytMNxVQvg==" + }, + "node_modules/codemirror-graphql": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-2.0.12.tgz", + "integrity": "sha512-5UCqhWzck1jClCmRewFb8aSiabnAqiaRfsvIPfmbf6WJvOb8oiefJeHilclPPiZBzY8v/Et6EBMtOeKnWCoyng==", "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@types/codemirror": "^0.0.90", + "graphql-language-service": "5.2.1" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@codemirror/language": "6.0.0", + "codemirror": "^5.65.3", + "graphql": "^15.5.0 || ^16.0.0" } }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "node_modules/codemirror-graphql/node_modules/@types/codemirror": { + "version": "0.0.90", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.90.tgz", + "integrity": "sha512-8Z9+tSg27NPRGubbUPUCrt5DDG/OWzLph5BvcDykwR5D7RyZh5mhHG0uS1ePKV1YFCA+/cwc4Ey2AJAEFfV3IA==", + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-arraybuffer": { + "node_modules/collect-v8-coverage": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", - "peer": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "peer": true }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, "engines": { - "node": ">=8" + "node": ">=12.5.0" } }, - "node_modules/binary-search-bounds": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", - "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==", - "peer": true - }, - "node_modules/bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==", - "peer": true - }, - "node_modules/bitmap-sdf": { + "node_modules/color-alpha": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", - "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", - "peer": true - }, - "node_modules/bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", + "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", "peer": true, "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "color-parse": "^1.3.8" } }, - "node_modules/bl/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "peer": true - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "peer": true, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "node_modules/bl/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - }, - "node_modules/bl/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/color-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", + "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", "peer": true, "dependencies": { - "safe-buffer": "~5.1.0" + "clamp": "^1.0.1" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "node_modules/color-normalize": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", + "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", "peer": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" + "clamp": "^1.0.1", + "color-rgba": "^2.1.1", + "dtype": "^2.0.0" } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/color-parse": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.3.8.tgz", + "integrity": "sha512-1Y79qFv0n1xair3lNMTNeoFvmc3nirMVBij24zbs1f13+7fPpQClMg5b4AuKXLt3szj7BRlHMCXHplkce6XlmA==", + "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "color-name": "^1.0.0", + "defined": "^1.0.0", + "is-plain-obj": "^1.1.0" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, + "node_modules/color-rgba": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", + "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", + "peer": true, "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" + "clamp": "^1.0.1", + "color-parse": "^1.3.8", + "color-space": "^1.14.6" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, + "node_modules/color-space": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", + "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", "peer": true, "dependencies": { - "node-int64": "^0.4.0" + "hsluv": "^0.0.3", + "mumath": "^3.3.4" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "node_modules/buffer-from": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz", - "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==", - "peer": true + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "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==", + "dev": true, "dependencies": { - "streamsearch": "^1.1.0" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=10.16.0" + "node": ">= 0.8" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], "peer": true, - "engines": { - "node": ">=6" + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } + "node_modules/concat-stream/node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "peer": true }, - "node_modules/caniuse-lite": { - "version": "1.0.30001591", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", - "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "peer": true }, - "node_modules/canvas-fit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "peer": true, "dependencies": { - "element-size": "^1.1.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true }, - "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, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "peer": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "safe-buffer": "~5.1.0" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "peer": true, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "peer": true + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { - "node": ">=10" + "node": ">= 0.6" } }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/cookies-next": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.1.1.tgz", + "integrity": "sha512-20QaN0iQSz87Os0BhNg9M71eM++gylT3N5szTlhq2rK6QvXn1FYGPB4eAgU4qFTunbQKhD35zfQ95ZWgzUy3Cg==", + "dependencies": { + "@types/cookie": "^0.6.0", + "@types/node": "^16.10.2", + "cookie": "^0.6.0" } }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/cookies-next/node_modules/@types/node": { + "version": "16.18.96", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.96.tgz", + "integrity": "sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==" }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "dependencies": { + "toggle-selection": "^1.0.6" } }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "peer": true }, - "node_modules/chart.js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.1.tgz", - "integrity": "sha512-C74QN1bxwV1v2PEujhmKjOZ7iUM4w6BWs23Md/6aOZZSlwMzeCIDGuZay++rBgChYru7/+QFeoQW0fQoP534Dg==", + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "peer": true, "dependencies": { - "@kurkle/color": "^0.3.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "pnpm": ">=7" + "node": ">=10" } }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/country-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", + "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==", + "peer": 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, + "peer": true, "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "@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" }, - "engines": { - "node": ">= 6" + "bin": { + "create-jest": "bin/create-jest.js" }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dev": true, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "devOptional": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "engines": { + "node": ">= 8" } }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "node_modules/css-blank-pseudo": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-5.0.2.tgz", + "integrity": "sha512-aCU4AZ7uEcVSUzagTlA9pHciz7aWPKA/YzrEkpdSopJ2pvhIxiQ5sYeMz1/KByxlIo4XBdvMNJAVKMg/GRnhfw==", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "postcss-selector-parser": "^6.0.10" }, "engines": { - "node": ">= 8.10.0" + "node": "^14 || ^16 || >=18" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/css-font": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", + "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", + "peer": true, "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-global-keywords": "^1.0.1", + "css-system-font-keywords": "^1.0.0", + "pick-by-alias": "^1.2.0", + "string-split-by": "^1.0.0", + "unquote": "^1.1.0" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } + "node_modules/css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==", + "peer": true }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "peer": true, - "engines": { - "node": ">=6.0" - } + "node_modules/css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==", + "peer": true }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } + "node_modules/css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==", + "peer": true }, - "node_modules/cjs-module-lexer": { - "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/css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==", "peer": true }, - "node_modules/clamp": { + "node_modules/css-global-keywords": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==", + "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", + "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==", "peer": true }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "peer": true, + "node_modules/css-has-pseudo": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-5.0.2.tgz", + "integrity": "sha512-q+U+4QdwwB7T9VEW/LyO6CFrLAeLqOykC5mDqJXc7aKZAhDbq7BvGT13VGJe+IwBfdN2o3Xdw2kJ5IxwV1Sc9Q==", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "@csstools/selector-specificity": "^2.0.1", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=12" + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "node_modules/css-prefers-color-scheme": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-8.0.2.tgz", + "integrity": "sha512-OvFghizHJ45x7nsJJUSYLyQNTzsCU8yWjxAc/nhPQg1pbs18LMoET8N3kOweFDPy0JV0OSXN2iqRFhPBHYOeMA==", "engines": { - "node": ">=6" + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, - "peer": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/codemirror": { - "version": "5.65.16", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.16.tgz", - "integrity": "sha512-br21LjYmSlVL0vFCPWPfhzUCT34FM/pAdK7rRIZwa0rrtrIdotvP4Oh4GUHsu2E3IrQMCfRkL/fN3ytMNxVQvg==" - }, - "node_modules/codemirror-graphql": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-2.0.10.tgz", - "integrity": "sha512-rC9NxibCsSzWtCQjHLfwKCkyYdGv2BT/BCgyDoKPrc/e7aGiyLyeT0fB60d+0imwlvhX3lIHncl6JMz2YxQ/jg==", "dependencies": { - "@types/codemirror": "^0.0.90", - "graphql-language-service": "5.2.0" + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, - "peerDependencies": { - "@codemirror/language": "6.0.0", - "codemirror": "^5.65.3", - "graphql": "^15.5.0 || ^16.0.0" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/codemirror-graphql/node_modules/@types/codemirror": { - "version": "0.0.90", - "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.90.tgz", - "integrity": "sha512-8Z9+tSg27NPRGubbUPUCrt5DDG/OWzLph5BvcDykwR5D7RyZh5mhHG0uS1ePKV1YFCA+/cwc4Ey2AJAEFfV3IA==", + "node_modules/css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==", + "peer": true + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, "dependencies": { - "@types/tern": "*" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/collapse-white-space": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/collect-v8-coverage": { - "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/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", "peer": true }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" + "node_modules/cssdb": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.1.tgz", + "integrity": "sha512-F0nEoX/Rv8ENTHsjMPGHd9opdjGfXkgRBafSUGnQKPzGZFB7Lm0BbT10x21TMOCrKLbVsJ0NoCDMk6AfKqw8/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" }, "engines": { - "node": ">=12.5.0" + "node": ">=4" } }, - "node_modules/color-alpha": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "peer": true, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, "dependencies": { - "color-parse": "^1.3.8" + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "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==", + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=7.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/color-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "peer": true, - "dependencies": { - "clamp": "^1.0.1" - } + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, - "node_modules/color-normalize": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "peer": true, "dependencies": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, - "node_modules/color-parse": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.3.8.tgz", - "integrity": "sha512-1Y79qFv0n1xair3lNMTNeoFvmc3nirMVBij24zbs1f13+7fPpQClMg5b4AuKXLt3szj7BRlHMCXHplkce6XlmA==", - "peer": true, - "dependencies": { - "color-name": "^1.0.0", - "defined": "^1.0.0", - "is-plain-obj": "^1.1.0" + "node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "peer": true + }, + "node_modules/d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", + "peer": true + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" } }, - "node_modules/color-rgba": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "peer": true, - "dependencies": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" + "node_modules/d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==", + "peer": true + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" } }, - "node_modules/color-space": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", + "node_modules/d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", "peer": true, "dependencies": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" } }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "node_modules/d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "node_modules/d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "peer": true, "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "d3-array": "1" } }, - "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==", - "dev": true, + "node_modules/d3-geo-projection": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", + "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", + "peer": true, "dependencies": { - "delayed-stream": "~1.0.0" + "commander": "2", + "d3-array": "1", + "d3-geo": "^1.12.0", + "resolve": "^1.1.10" }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "bin": { + "geo2svg": "bin/geo2svg", + "geograticule": "bin/geograticule", + "geoproject": "bin/geoproject", + "geoquantize": "bin/geoquantize", + "geostitch": "bin/geostitch" } }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "peer": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, + "node_modules/d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==", "peer": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/concat-stream/node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", "peer": true }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "node_modules/d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==", "peer": true }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "peer": true, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "peer": true, + "node_modules/d3-scale/node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", "dependencies": { - "safe-buffer": "~5.1.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "peer": true - }, - "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "node_modules/d3-scale/node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, "engines": { - "node": ">= 0.6" + "node": ">=12" } }, - "node_modules/cookies-next": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.1.1.tgz", - "integrity": "sha512-20QaN0iQSz87Os0BhNg9M71eM++gylT3N5szTlhq2rK6QvXn1FYGPB4eAgU4qFTunbQKhD35zfQ95ZWgzUy3Cg==", + "node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "peer": true, "dependencies": { - "@types/cookie": "^0.6.0", - "@types/node": "^16.10.2", - "cookie": "^0.6.0" + "d3-path": "1" } }, - "node_modules/cookies-next/node_modules/@types/node": { - "version": "16.18.96", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.96.tgz", - "integrity": "sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==" + "node_modules/d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" }, - "node_modules/copy-to-clipboard": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "node_modules/d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", "dependencies": { - "toggle-selection": "^1.0.6" + "d3-time": "1" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "node_modules/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==", "peer": true }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "peer": true, + "node_modules/d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "peer": true, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/country-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==", - "peer": 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==", + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, - "peer": 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" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, - "bin": { - "create-jest": "bin/create-jest.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "peer": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "character-entities": "^2.0.0" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "engines": { - "node": ">= 8" + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peer": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/css-blank-pseudo": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-5.0.2.tgz", - "integrity": "sha512-aCU4AZ7uEcVSUzagTlA9pHciz7aWPKA/YzrEkpdSopJ2pvhIxiQ5sYeMz1/KByxlIo4XBdvMNJAVKMg/GRnhfw==", - "dependencies": { - "postcss-selector-parser": "^6.0.10" + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" }, "engines": { - "node": "^14 || ^16 || >=18" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/css-font": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "peer": true, - "dependencies": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" + "node_modules/deep-equal/node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" } }, - "node_modules/css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==", - "peer": true - }, - "node_modules/css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==", - "peer": true - }, - "node_modules/css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==", - "peer": true + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, - "node_modules/css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==", - "peer": true + "node_modules/deepmerge": { + "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, + "peer": true, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/css-global-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==", - "peer": true + "node_modules/default-composer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/default-composer/-/default-composer-0.6.0.tgz", + "integrity": "sha512-icLwAqlLJUAhLCPN9jBntg3B70VWWisLoayrPQThriuKCUmdj0k/UdUXmjzfHs9YT4j61EroqYsYG9nqeiGc8Q==" }, - "node_modules/css-has-pseudo": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-5.0.2.tgz", - "integrity": "sha512-q+U+4QdwwB7T9VEW/LyO6CFrLAeLqOykC5mDqJXc7aKZAhDbq7BvGT13VGJe+IwBfdN2o3Xdw2kJ5IxwV1Sc9Q==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, "dependencies": { - "@csstools/selector-specificity": "^2.0.1", - "postcss-selector-parser": "^6.0.10", - "postcss-value-parser": "^4.2.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": "^14 || ^16 || >=18" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/css-prefers-color-scheme": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-8.0.2.tgz", - "integrity": "sha512-OvFghizHJ45x7nsJJUSYLyQNTzsCU8yWjxAc/nhPQg1pbs18LMoET8N3kOweFDPy0JV0OSXN2iqRFhPBHYOeMA==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, "engines": { - "node": "^14 || ^16 || >=18" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "node_modules/define-properties/node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "peer": true, "funding": { - "url": "https://github.com/sponsors/fb55" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/css-system-font-keywords": { + "node_modules/delaunator": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", + "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" + }, + "node_modules/delaunay-find": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/delaunay-find/-/delaunay-find-0.0.6.tgz", + "integrity": "sha512-1+almjfrnR7ZamBk0q3Nhg6lqSe6Le4vL0WJDSMx4IDbQwTpUTXPjxC00lqLBT8MYsJpPCbI16sIkw9cPsbi7Q==", + "dependencies": { + "delaunator": "^4.0.0" + } + }, + "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-kerning": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", + "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==", "peer": true }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "peer": true, "engines": { - "node": ">= 6" + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/fb55" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", - "peer": true + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, - "node_modules/cssdb": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.1.tgz", - "integrity": "sha512-F0nEoX/Rv8ENTHsjMPGHd9opdjGfXkgRBafSUGnQKPzGZFB7Lm0BbT10x21TMOCrKLbVsJ0NoCDMk6AfKqw8/A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ] + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "devOptional": true, + "engines": { + "node": ">=0.3.1" + } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "peer": true, "engines": { - "node": ">=4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "css-tree": "~2.2.0" + "path-type": "^4.0.0" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": ">=8" } }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" + "esutils": "^2.0.2" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": ">=6.0.0" } }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "peer": true, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", - "peer": true - }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", - "peer": true - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==", - "peer": true + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, "engines": { - "node": ">=12" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "peer": true, + "node_modules/dompurify": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.9.tgz", + "integrity": "sha512-uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ==" + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, "dependencies": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "node_modules/d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "node_modules/draw-svg-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", + "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", "peer": true, "dependencies": { - "d3-array": "1" + "abs-svg-path": "~0.1.1", + "normalize-svg-path": "~0.1.0" } }, - "node_modules/d3-geo-projection": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", - "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", + "node_modules/dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", "peer": true, - "dependencies": { - "commander": "2", - "d3-array": "1", - "d3-geo": "^1.12.0", - "resolve": "^1.1.10" - }, - "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==", + "node_modules/dup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", + "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==", "peer": true }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "peer": true, "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" + "readable-stream": "^2.0.2" } }, - "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", - "peer": true - }, - "node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==", + "node_modules/duplexer2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "peer": true }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "peer": true, "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/d3-scale/node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true }, - "node_modules/d3-scale/node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "peer": true, "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" + "safe-buffer": "~5.1.0" } }, - "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "peer": true, "dependencies": { - "d3-path": "1" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, - "node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "peer": true }, - "node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "peer": true, "dependencies": { - "d3-time": "1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==", + "node_modules/duplexify/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "peer": true }, - "node_modules/d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", "peer": true }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/echarts": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.0.tgz", + "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "tslib": "2.3.0", + "zrender": "5.5.0" } }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + "node_modules/echarts/node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "node_modules/electron-to-chromium": { + "version": "1.4.684", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.684.tgz", + "integrity": "sha512-MoDE0pUsIzTewI96Vbv84sTkER9Nbp58pa1K7Ub03s6+2HvuJ+jbnxcLJm22mpomJe+5PWtiPXqhbU5ZkyHU5A==" + }, + "node_modules/element-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", + "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==", + "peer": true + }, + "node_modules/elementary-circuits-directed-graph": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", + "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", + "peer": true, "dependencies": { - "character-entities": "^2.0.0" + "strongly-connected-components": "^1.0.1" + } + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "engines": { - "node": ">=0.10" + "node": ">= 4" } }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true, - "peer": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" } }, - "node_modules/deepmerge": { - "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, - "peer": true, + "node_modules/enhanced-resolve": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", + "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, - "node_modules/default-composer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/default-composer/-/default-composer-0.6.0.tgz", - "integrity": "sha512-icLwAqlLJUAhLCPN9jBntg3B70VWWisLoayrPQThriuKCUmdj0k/UdUXmjzfHs9YT4j61EroqYsYG9nqeiGc8Q==" - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "peer": true, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "node_modules/delaunay-find": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/delaunay-find/-/delaunay-find-0.0.6.tgz", - "integrity": "sha512-1+almjfrnR7ZamBk0q3Nhg6lqSe6Le4vL0WJDSMx4IDbQwTpUTXPjxC00lqLBT8MYsJpPCbI16sIkw9cPsbi7Q==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dependencies": { - "delaunator": "^4.0.0" + "is-arrayish": "^0.2.1" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "node_modules/es-abstract/node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/detect-kerning": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==", - "peer": true - }, - "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "peer": true, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, "dependencies": { - "dequal": "^2.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true, - "engines": { - "node": ">=0.3.1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", "dev": true, - "peer": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "peer": true }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "engines": { + "node": ">= 0.4" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { - "domelementtype": "^2.3.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": ">= 4" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dompurify": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.9.tgz", - "integrity": "sha512-uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ==" - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "peer": true, "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "engines": { + "node": ">=0.10" } }, - "node_modules/draw-svg-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "peer": true, "dependencies": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, - "node_modules/dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "peer": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "peer": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "engines": { - "node": ">= 0.8.0" + "node": ">=6" } }, - "node_modules/dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==", - "peer": true + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "peer": true, "dependencies": { - "readable-stream": "^2.0.2" + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/duplexer2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "peer": true - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "peer": true, + "node_modules/eslint-config-next": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.3.tgz", + "integrity": "sha512-ZkNztm3Q7hjqvB1rRlOX8P9E/cXRL9ajRcs8jufEtwMfTVYRqnmtnaSu57QqHyBlovMuiB8LEzfLBkh5RYV6Fg==", + "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "@next/eslint-plugin-next": "14.2.3", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "peer": true, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/parser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", + "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "dev": true, "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/duplexify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "peer": true - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "peer": true, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/scope-manager": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", + "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/duplexify/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "peer": true + "node_modules/eslint-config-next/node_modules/@typescript-eslint/types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", + "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, - "node_modules/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "peer": true, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", + "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", - "peer": true - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/echarts": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.0.tgz", - "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", + "node_modules/eslint-config-next/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", + "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "dev": true, "dependencies": { - "tslib": "2.3.0", - "zrender": "5.5.0" + "@typescript-eslint/types": "7.2.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/echarts/node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.684", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.684.tgz", - "integrity": "sha512-MoDE0pUsIzTewI96Vbv84sTkER9Nbp58pa1K7Ub03s6+2HvuJ+jbnxcLJm22mpomJe+5PWtiPXqhbU5ZkyHU5A==" - }, - "node_modules/element-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==", - "peer": true - }, - "node_modules/elementary-circuits-directed-graph": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", - "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", - "peer": true, + "node_modules/eslint-config-next/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "dependencies": { - "strongly-connected-components": "^1.0.1" + "balanced-match": "^1.0.0" } }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "node_modules/eslint-config-next/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "node_modules/eslint-config-next/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 4" + "node": ">=10" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, "dependencies": { - "once": "^1.4.0" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/enhanced-resolve": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", - "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", - "peer": true, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" + "ms": "^2.1.1" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, "engines": { - "node": ">=0.12" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, "dependencies": { - "is-arrayish": "^0.2.1" + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", - "peer": true - }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "hasInstallScript": true, - "peer": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" }, "engines": { - "node": ">=0.10" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "peer": true, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "ms": "^2.1.1" } }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "peer": true, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "peer": true, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", + "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", + "dev": true, "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" + "aria-query": "~5.1.3", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.9.1", + "axobject-query": "~3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.19", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/eslint-plugin-react": { + "version": "7.34.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", + "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.hasown": "^1.1.4", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11" + }, "engines": { - "node": ">=6" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "peer": true, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/escodegen": { + "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "peer": true, + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", "esutils": "^2.0.2" }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": ">=0.10.0" } }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-scope": { @@ -8690,6 +9752,79 @@ "node": ">=4.0" } }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/esniff": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", @@ -8711,6 +9846,23 @@ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", "peer": true }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -8723,11 +9875,22 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -8739,7 +9902,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "peer": true, "engines": { "node": ">=4.0" } @@ -8826,7 +9988,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -9049,6 +10210,12 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -9081,6 +10248,18 @@ "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==" }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/file-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", @@ -9158,6 +10337,26 @@ "node": ">=18" } }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, "node_modules/flatten-vertex-data": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", @@ -9185,6 +10384,15 @@ "css-font": "^1.2.0" } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -9345,8 +10553,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/fsevents": { "version": "2.3.3", @@ -9369,6 +10576,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -9401,6 +10635,25 @@ "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==", "peer": true }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-nonce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", @@ -9430,6 +10683,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/gl-mat4": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", @@ -9487,7 +10769,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9530,6 +10811,42 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glsl-inject-defines": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", @@ -9754,11 +11071,29 @@ "xtend": "~4.0.1" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/graphiql": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/graphiql/-/graphiql-3.1.1.tgz", @@ -9784,9 +11119,9 @@ } }, "node_modules/graphql-language-service": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.2.0.tgz", - "integrity": "sha512-o/ZgTS0pBxWm3hSF4+6GwiV1//DxzoLWEbS38+jqpzzy1d/QXBidwQuVYTOksclbtOJZ3KR/tZ8fi/tI6VpVMg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.2.1.tgz", + "integrity": "sha512-8ewD6otGO43vg2TiEGjoLz3CweTwfaf4ZnqfNREqZXS2JSJGXtsRBOMMknCxMfFVh4x14ql3jyDrXcyAAtbmkQ==", "dependencies": { "nullthrows": "^1.0.0", "vscode-languageserver-types": "^3.17.1" @@ -9829,6 +11164,15 @@ "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==", "peer": true }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -9855,10 +11199,61 @@ "is-browser": "^2.0.1" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -10842,6 +12237,15 @@ ], "peer": true }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/immer": { "version": "9.0.21", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", @@ -10891,7 +12295,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "peer": true, "engines": { "node": ">=0.8.19" } @@ -10901,7 +12304,6 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "peer": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -10910,14 +12312,27 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "peer": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/internmap": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", @@ -10956,11 +12371,70 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -10972,6 +12446,22 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-browser": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", @@ -11000,6 +12490,18 @@ "node": ">=4" } }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -11011,6 +12513,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -11036,6 +12568,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-finite": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", @@ -11075,6 +12619,21 @@ "node": ">=6" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -11104,12 +12663,36 @@ "node": ">=0.10.0" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-mobile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==", "peer": true }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -11118,6 +12701,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -11127,6 +12725,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -11160,7 +12767,50 @@ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", "dependencies": { - "@types/estree": "*" + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-stream": { @@ -11175,6 +12825,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-string-blank": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", @@ -11187,11 +12852,80 @@ "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==", "peer": true }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "peer": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", @@ -11323,6 +13057,19 @@ "node": ">=8" } }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, "node_modules/jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", @@ -12012,6 +13759,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -12022,6 +13775,12 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -12052,12 +13811,36 @@ "node": ">=14.0.0" } }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/kdbush": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==", "peer": true }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -12090,6 +13873,24 @@ "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", "dev": true }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -12100,6 +13901,19 @@ "node": ">=6" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", @@ -17107,7 +18921,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -17119,7 +18932,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -17301,8 +19113,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/needle": { "version": "2.9.1", @@ -17337,12 +19148,12 @@ "peer": true }, "node_modules/next": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/next/-/next-14.1.1.tgz", - "integrity": "sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.4.tgz", + "integrity": "sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==", "dependencies": { - "@next/env": "14.1.1", - "@swc/helpers": "0.5.2", + "@next/env": "14.2.4", + "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "graceful-fs": "^4.2.11", @@ -17356,18 +19167,19 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.1.1", - "@next/swc-darwin-x64": "14.1.1", - "@next/swc-linux-arm64-gnu": "14.1.1", - "@next/swc-linux-arm64-musl": "14.1.1", - "@next/swc-linux-x64-gnu": "14.1.1", - "@next/swc-linux-x64-musl": "14.1.1", - "@next/swc-win32-arm64-msvc": "14.1.1", - "@next/swc-win32-ia32-msvc": "14.1.1", - "@next/swc-win32-x64-msvc": "14.1.1" + "@next/swc-darwin-arm64": "14.2.4", + "@next/swc-darwin-x64": "14.2.4", + "@next/swc-linux-arm64-gnu": "14.2.4", + "@next/swc-linux-arm64-musl": "14.2.4", + "@next/swc-linux-x64-gnu": "14.2.4", + "@next/swc-linux-x64-musl": "14.2.4", + "@next/swc-win32-arm64-msvc": "14.2.4", + "@next/swc-win32-ia32-msvc": "14.2.4", + "@next/swc-win32-x64-msvc": "14.2.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", "react": "^18.2.0", "react-dom": "^18.2.0", "sass": "^1.3.0" @@ -17376,6 +19188,9 @@ "@opentelemetry/api": { "optional": true }, + "@playwright/test": { + "optional": true + }, "sass": { "optional": true } @@ -17542,12 +19357,147 @@ "node": ">= 6" } }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", "peer": true }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.assign/node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -17571,6 +19521,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -17730,7 +19697,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -18035,6 +20001,15 @@ "tslib": "^2.1.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.35", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", @@ -18908,6 +20883,30 @@ "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", "peer": true }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -19017,6 +21016,14 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "engines": { + "node": ">=6" + } + }, "node_modules/pure-rand": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", @@ -20120,11 +22127,50 @@ "redux": "^4" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regl": { "name": "@plotly/regl", "version": "2.1.2", @@ -21149,6 +23195,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve-protobuf-schema": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", @@ -21183,6 +23238,22 @@ "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==", "peer": true }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rollup": { "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", @@ -21258,6 +23329,24 @@ "node": ">=6" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -21278,6 +23367,23 @@ ], "peer": true }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -21332,7 +23438,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -21346,6 +23451,38 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-value": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz", @@ -21457,6 +23594,24 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -21494,7 +23649,6 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -21614,6 +23768,18 @@ "escodegen": "^2.1.0" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/stream-parser": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", @@ -21708,6 +23874,91 @@ "node": ">=8" } }, + "node_modules/string.prototype.includes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", + "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/stringify-entities": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", @@ -21776,7 +24027,6 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "peer": true, "engines": { "node": ">=8" }, @@ -22139,7 +24389,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "peer": true, "engines": { "node": ">=6" } @@ -22297,6 +24546,12 @@ "node": ">=8" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -22445,6 +24700,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -22575,6 +24842,39 @@ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "devOptional": true }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -22586,6 +24886,18 @@ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", "peer": true }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -22609,6 +24921,79 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -22648,6 +25033,21 @@ "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==", "dev": true }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -23688,6 +26088,94 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/world-calendars": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", diff --git a/package.json b/package.json index ad0846e..c4fc04c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@gen3/commons-portal-app-base", - "version": "0.1.0", + "name": "prometheus-data-platform", + "version": "0.10.31", "private": "true", "engines": { "npm": ">=10.2.3", @@ -12,22 +12,22 @@ "build": "next build", "start": "next start", "setupCommons": "npm run buildColors && npm run getSchema && npm run getDRSToHostname", - "buildColors": "node ./node_modules/@gen3/toolsff/dist/buildColors.esm.js --themeFile=config/gen3/colors.json --out=config/", - "bundleIcons": "node ./node_modules/@gen3/toolsff/dist/bundleIcons.esm.js --inpath=config/icons --outpath=config/icons", + "build:colors": "node ./node_modules/@gen3/toolsff/dist/buildColors.esm.js --themeFile=config/$npm_config_commons/colors.json --out=config/$npm_config_commons", + "build:icons": "node ./node_modules/@gen3/toolsff/dist/bundleIcons.esm.js --inpath=config/icons --outpath=config/icons", "getSchema": "node ./node_modules/@gen3/toolsff/dist/getSchema.esm.js --out=config/", "getDRSToHostname": "node ./node_modules/@gen3/toolsff/dist/getDRSToHostname.esm.js --out=config/" }, "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.27.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.31.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", - "@next/mdx": "^14.1.0", + "@next/mdx": "^14.2.3", "@types/mdx": "^2.0.11", "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.27.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.31.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -35,19 +35,28 @@ "@types/lodash": "^4.14.202", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", - "next": "^14.1.1", + "eslint": "8.57.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-config-next": "14.2.3", + "next": "^14.2.3", "postcss": "^8.4.29", "postcss-loader": "^7.3.2", "postcss-preset-env": "^8.4.2", + "prettier": "^2.7.1", "react": "^18.2.0", "react-dom": "18.2.0", "tailwindcss": "^3.3.7", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", - "typescript": "5.0.2" + "typescript": "5.0.2", + "@typescript-eslint/eslint-plugin": "^7.12.0" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.27.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.31.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } diff --git a/src/lib/CohortBuilder/FileDetailsPanel.tsx b/src/lib/CohortBuilder/FileDetailsPanel.tsx new file mode 100644 index 0000000..11323b5 --- /dev/null +++ b/src/lib/CohortBuilder/FileDetailsPanel.tsx @@ -0,0 +1,171 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ // TODO remove use of any +import { + Anchor, + Group, + LoadingOverlay, + Stack, + Table, + Text, + CopyButton, + ActionIcon, + Tooltip, + Button, +} from '@mantine/core'; +import { useGeneralGQLQuery, GEN3_FENCE_API } from '@gen3/core'; +import { + ErrorCard, + type TableDetailsPanelProps, + ExplorerTableDetailsPanelFactory, +} from '@gen3/frontend'; +import { + MdContentCopy as IconCopy, + MdCheck as IconCheck, +} from 'react-icons/md'; + +// a definition of the query response +interface QueryResponse { + data?: Record>; +} + +/** + * Checks if the given object is a QueryResponse. + * + * @param {any} obj - The object to be checked. + * @returns {boolean} Returns true if the object is a QueryResponse, false otherwise. + */ +const isQueryResponse = (obj: any): obj is QueryResponse => { + // Considering that the data property can be optional + return ( + typeof obj === 'object' && + (obj.data === undefined || typeof obj.data === 'object') + ); +}; + +/** + * Extracts data from a QueryResponse object based on an index. + * + * @param {QueryResponse} data - The QueryResponse object containing the data. + * @param {string} index - The index to extract the data from. + * @returns {Record} - The extracted data as a key-value pair object. + */ +const extractData = ( + data: QueryResponse, + index: string, +): Record => { + if (data === undefined || data === null) return {}; + if (data.data === undefined || data.data === null) return {}; + + return Array.isArray(data.data[index]) && data.data[index].length > 0 + ? data.data[index][0] + : {}; +}; + +export const FileDetailsPanel = ({ + id, + index, + tableConfig, + onClose, +}: TableDetailsPanelProps) => { + // get the idField from the configuration + const idField = tableConfig.detailsConfig?.idField; + // call the general Guppy GQL which takes an object { query: string, variables: object } + const { data, isLoading, isError } = useGeneralGQLQuery({ + query: `query ($filter: JSON) { + ${index} (filter: $filter, accessibility: all) { + ${tableConfig.fields} + } + }`, + variables: { + filter: { + AND: [ + { + IN: { + [idField ?? 0]: [id], + }, + }, + ], + }, + }, + }); + + // handle misconfiguration + if (!idField) { + return ( + + ); + } + // show data error if graphql fails + if (isError) { + return ; + } + + // process guppy response + const queryData = isQueryResponse(data) ? extractData(data, index) : {}; + + // create the rows for the table + const rows = Object.entries(queryData).map(([field, value]) => ( + + + {field} + + + {/* + if field is one that we want a link for make it an Anchor otherwise + render as text. + */} + {field === 'object_id' ? ( + + {value ? (value as string) : ''} + + ) : ( + {value ? (value as string) : ''} + )} + + + )); + return ( + + + Results for {id} + + + + + + + + {rows} +
FieldValue
+ + + {({ copied, copy }) => ( + + + {copied ? : } + + + )} + + + +
+ ); +}; + +export const registerCustomExplorerDetailsPanels = () => { + ExplorerTableDetailsPanelFactory().registerRendererCatalog({ + // NOTE: The catalog name must be tableDetails + tableDetails: { fileDetails: FileDetailsPanel }, // TODO: add simpler registration function that ensures the catalog name is tableDetails + }); +}; diff --git a/src/lib/Discovery/CustomCellRenderers.tsx b/src/lib/Discovery/CustomCellRenderers.tsx index 312297d..4a30224 100644 --- a/src/lib/Discovery/CustomCellRenderers.tsx +++ b/src/lib/Discovery/CustomCellRenderers.tsx @@ -11,55 +11,56 @@ import { import { isArray } from 'lodash'; import { JSONObject } from '@gen3/core'; import { toString } from 'lodash'; +import { FilemapPopup, FilemapInline } from '@/lib/Discovery/Filemap'; /** - * Custom cell renderer for the linked study column + * Custom cell renderer for the linked study column for HEAL * @param cell */ export const LinkedStudyCell = ({ - value: cellValue, - }: CellRenderFunctionProps) => { + value: cellValue, +}: CellRenderFunctionProps) => { const value = cellValue as boolean; return value ? ( - } - color="green" - > - Linked - + } + color="green" + > + Linked + ) : ( - } color="primary"> - Not Linked - + } color="primary"> + Not Linked + ); }; const WrappedStringCell = ( - { value }: CellRenderFunctionProps, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - params?: JSONObject, + { value }: CellRenderFunctionProps, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + params?: JSONObject, ) => { if (value === undefined || value === null || toString(value) === '') { return ( - - {`${ - params && params?.valueIfNotAvailable - ? params?.valueIfNotAvailable - : '' - }`}{' '} - + + {`${ + params && params?.valueIfNotAvailable + ? params?.valueIfNotAvailable + : '' + }`}{' '} + ); } const content = value as string | string[]; return ( -
+
{isArray(content) ? content.join(', ') : content} -
+
); }; @@ -70,10 +71,14 @@ const WrappedStringCell = ( export const registerDiscoveryCustomCellRenderers = () => { DiscoveryCellRendererFactory.registerCellRendererCatalog({ string: { - sampleString: WrappedStringCell, + default: WrappedStringCell, }, boolean: { LinkedStudyCell, }, + manifest: { + default: FilemapPopup, + inline: FilemapInline, + } }); }; diff --git a/src/lib/Discovery/CustomRowRenderers.tsx b/src/lib/Discovery/CustomRowRenderers.tsx index 6030dd9..3772d93 100644 --- a/src/lib/Discovery/CustomRowRenderers.tsx +++ b/src/lib/Discovery/CustomRowRenderers.tsx @@ -10,74 +10,75 @@ import { getTagColor, } from '@gen3/frontend'; -// TODO: This is a hack to get around the fact that the data is not typed + interface TagData { name: string; category: string; } const DetailsWithTagsRowRenderer = - ( - { row } : RowRenderFunctionParams, - studyPreviewConfig?: StudyDetailsField, - ): ReactElement => { - const { discoveryConfig: config, setStudyDetails } = useDiscoveryContext(); + ( + { row } : RowRenderFunctionParams, + studyPreviewConfig?: StudyDetailsField, + ): ReactElement => { + const { discoveryConfig: config, setStudyDetails } = useDiscoveryContext(); - if (!studyPreviewConfig) { - return ; - } - const value = - JSONPath({ - json: row.original, - path: studyPreviewConfig.field, - }) ?? - config?.studyPreviewField?.valueIfNotAvailable ?? - ''; + if (!studyPreviewConfig) { + return ; + } + const value = + JSONPath({ + json: row.original, + path: studyPreviewConfig.field, + }) ?? + config?.studyPreviewField?.valueIfNotAvailable ?? + ''; - return ( - { - setStudyDetails(() => { - return { ...row.original }; - }); - }} - > -
- - {value} - + return ( + { + setStudyDetails(() => { + return { ...row.original }; + }); + }} + > +
+ + {value} + -
- {row.original?.tags.map(({ name, category }: TagData) => { - const color = getTagColor(category, config.tagCategories); - return ( - - {name} - - ); - })} -
-
-
- ); - }; +
+ {row.original?.tags.map(({ name, category }: TagData) => { + const color = getTagColor(category, config.tagCategories); + if (name === '') return null; // no tag + return ( + + {name} + + ); + })} +
+
+
+ ); + }; export default DetailsWithTagsRowRenderer; diff --git a/src/lib/Discovery/Filemap.tsx b/src/lib/Discovery/Filemap.tsx new file mode 100644 index 0000000..8c859c2 --- /dev/null +++ b/src/lib/Discovery/Filemap.tsx @@ -0,0 +1,183 @@ +import { + CellRenderFunctionProps, + ReactECharts, + ReactEChartsProps, +} from '@gen3/frontend'; +import { Button, Popover, Text } from '@mantine/core'; +import { isArray } from 'lodash'; +import { useDeepCompareMemo } from 'use-deep-compare'; +import { useDisclosure } from '@mantine/hooks'; + +/** + * Represents a manifest item. + * @interface ManifestItem + */ +interface ManifestItem { + md5sum: string; + file_name: string; + file_size?: number; + object_id: string; + commons_name?: string; +} + +/** + * Interface representing the data structure for Bar Chart. + * + * @interface + * @name BarChartData + * @property {number} value - The numerical value associated with the bar. + * @property {string} name - The name or label associated with the bar. + */ +interface BarChartData { + value: number; + name: string; +} + +/** + * Counts the number of occurrences of file types in the given data array and returns an array of objects + * representing the file type and its percentage value within the total count. + * + * @param {Array} data - The array of data containing ManifestItem objects. + * @returns {Array} - The array of objects representing file types and their percentages. + */ +const countTypes = (data: Array): BarChartData[] => { + const counts: Record = {}; + data.forEach((item: ManifestItem) => { + const filetype = item.file_name.split('.').pop(); + if (!filetype) return; + counts[filetype] = counts[filetype] ? counts[filetype] + 1 : 1; + }); + const total = Object.values(counts).reduce((acc, val) => acc + val, 0); + return Object.entries(counts).map(([name, value]) => ({ + name, + value: Number(((value / total) * 100).toFixed(2)), + })); +}; + +/** + * Converts an array of manifest items into a chart definition for React ECharts. + * + * @param {Array} data - The array of manifest items to convert. + * @returns {ReactEChartsProps['option'] | undefined} - The chart definition or undefined if the data is invalid or empty. + */ +const useProcessManifestToChart = ( + values: Array, + showLabel = true, + showToolip = false, +): ReactEChartsProps['option'] | undefined => { + const chartDefinition = useDeepCompareMemo((): + | ReactEChartsProps['option'] + | undefined => { + if ( + values === undefined || + values === null || + !isArray(values) || + values.length === 0 + ) { + return undefined; + } + + const data = countTypes(values); + + return { + grid: { + left: 2, + top: 2, + right: 2, + bottom: 2, + }, + tooltip: { + trigger: 'item', + show: showToolip, + formatter: '{a} - {c}%', + position: 'right', + z: 100, + }, + xAxis: { + type: 'value', + show: false, + }, + yAxis: { + type: 'category', + data: data.map((d) => d.name), + show: false, + }, + series: data.map((d) => ({ + type: 'bar', + stack: 'total', + barWidth: 40, + name: d.name, + data: [d.value], + label: { + show: showLabel, + position: 'top', + minMargin: 8, + formatter: '{a} - {c}%', + }, + labelLine: { + show: true, + }, + labelLayout: () => { + return { + y: '35%', + moveOverlap: 'shiftX', + }; + }, + })), + }; + }, [values]); + + return chartDefinition; +}; + +/** + * Represents a Filemap popup component. + * + * @component + * @param {Object} value - An object containing the __manifest value to render. + * @returns {JSX.Element} - The rendered JSX element. + */ +export const FilemapPopup = ({ value }: CellRenderFunctionProps) => { + const [opened, { close, open }] = useDisclosure(false); + const chartDefinition = useProcessManifestToChart(value[0]); + + if (!chartDefinition) { + return n/a; + } + return ( + + + + + +
+ +
+
+
+ ); +}; + +/** + * Render a chart component based on the provided value. + * + * @param {object} value - An object or array containing the value for the chart component. + * @returns {JSX.Element} - The rendered chart component. + */ +export const FilemapInline = ({ value }: CellRenderFunctionProps) => { + const chartDefinition = useProcessManifestToChart(value[0], false, true); + + if (!chartDefinition) { + return n/a; + } + return ( +
+ +
+ ); +}; diff --git a/src/lib/plugins/index.js b/src/lib/plugins/index.js index c9426cb..2d8f48e 100644 --- a/src/lib/plugins/index.js +++ b/src/lib/plugins/index.js @@ -5,32 +5,37 @@ const fs = require('fs'); // eslint-disable-next-line @typescript-eslint/no-var-requires const path = require('path'); -if (!fs.existsSync(path.join(process.cwd(), 'config', 'plugins.json'))) { - console.log('No plugins to generate.'); - return; -} -console.log('Generating plugins...'); +function main() { + if (!fs.existsSync(path.join(process.cwd(), 'config', 'plugins.json'))) { + console.log('No plugins to generate.'); + return; + } -const plugins = JSON.parse( - fs - .readFileSync(path.join(process.cwd(), 'config', 'plugins.json')) - .toString('utf-8'), -); -const imports = plugins - .map( - (plugin) => - `import { registerApp as registerApp${plugin.name} } from "${plugin.module}";`, - ) - .join('\n'); -const register = plugins - .map((plugin) => `registerApp${plugin.name}();`) - .join('\n'); -fs.writeFileSync( - path.join(process.cwd(), 'config', 'registerSitePlugins.js'), - `${imports} + console.log('Generating plugins...'); + + const plugins = JSON.parse( + fs + .readFileSync(path.join(process.cwd(), 'config', 'plugins.json')) + .toString('utf-8'), + ); + const imports = plugins + .map( + (plugin) => + `import { registerApp as registerApp${plugin.name} } from "${plugin.module}";`, + ) + .join('\n'); + const register = plugins + .map((plugin) => `registerApp${plugin.name}();`) + .join('\n'); + fs.writeFileSync( + path.join(process.cwd(), 'config', 'registerSitePlugins.js'), + `${imports} export const registerSitePlugins = () => { ${register} }; `, -); + ); +}; + +main(); diff --git a/src/pages/AISearch.tsx b/src/pages/AISearch.tsx new file mode 100644 index 0000000..5dacef7 --- /dev/null +++ b/src/pages/AISearch.tsx @@ -0,0 +1,9 @@ +import { + AiSearchPage, + AISearchPageGetServerSideProps as getServerSideProps, +} from '@gen3/frontend'; + + +export default AiSearchPage; + +export { getServerSideProps }; diff --git a/src/pages/DataDictionary.tsx b/src/pages/DataDictionary.tsx index 274b3b1..0302c07 100644 --- a/src/pages/DataDictionary.tsx +++ b/src/pages/DataDictionary.tsx @@ -1,7 +1,7 @@ import { - DataDictionaryPage, - DataDictionaryPageGetServerSideProps as getServerSideProps, + DictionaryPage, + DictionaryPageGetServerSideProps as getServerSideProps, } from '@gen3/frontend'; -export default DataDictionaryPage; +export default DictionaryPage; export { getServerSideProps }; diff --git a/src/pages/Explorer.tsx b/src/pages/Explorer.tsx index 8322e2c..9923b56 100644 --- a/src/pages/Explorer.tsx +++ b/src/pages/Explorer.tsx @@ -3,9 +3,13 @@ import { ExplorerPageGetServerSideProps as getServerSideProps, } from '@gen3/frontend'; -import { registerCohortTableCustomCellRenderers } from "@/lib/CohortBuilder/CustomCellRenderers"; +import { registerCohortTableCustomCellRenderers +} from '@/lib/CohortBuilder/CustomCellRenderers'; + +import { registerCustomExplorerDetailsPanels } from '@/lib/CohortBuilder/FileDetailsPanel'; registerCohortTableCustomCellRenderers(); +registerCustomExplorerDetailsPanels(); export default ExplorerPage; diff --git a/src/pages/SamplePage.tsx b/src/pages/SamplePage.tsx index 7fe48bb..1124364 100644 --- a/src/pages/SamplePage.tsx +++ b/src/pages/SamplePage.tsx @@ -26,7 +26,7 @@ const SamplePage = ({ headerProps, footerProps }: NavPageLayoutProps) => { export const getServerSideProps: GetServerSideProps< NavPageLayoutProps -> = async (_context) => { +> = async () => { return { props: { ...(await getNavPageLayoutPropsFromConfig()), diff --git a/src/pages/Submission.tsx b/src/pages/Submission.tsx new file mode 100644 index 0000000..f6e0969 --- /dev/null +++ b/src/pages/Submission.tsx @@ -0,0 +1,7 @@ +import { + SubmissionPage, + SubmissionPageGetServerSideProps as getServerSideProps, +} from '@gen3/frontend'; +export default SubmissionPage; + +export { getServerSideProps }; diff --git a/src/pages/Workspaces.tsx b/src/pages/Workspace.tsx similarity index 100% rename from src/pages/Workspaces.tsx rename to src/pages/Workspace.tsx diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 85551da..6b1c2ed 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,32 +1,39 @@ -import type { AppProps } from 'next/app'; +import App, { AppProps, AppContext, AppInitialProps } from 'next/app'; import { useEffect } from 'react'; -import { Gen3Provider, TenStringArray, type ModalsConfig } from '@gen3/frontend'; -import themeColors from '../../config/themeColors.json'; -import themeFonts from '../../config/themeFonts.json'; -import icons from '../../config/icons/gen3.json'; +import { + Gen3Provider, + TenStringArray, + type ModalsConfig, + ContentSource, + RegisteredIcons, + Fonts, + SessionConfiguration, +} from '@gen3/frontend'; import '../styles/globals.css'; import 'graphiql/graphiql.css'; import '@graphiql/react/dist/style.css'; -import { setDRSHostnames } from '@gen3/core'; - - -// TODO: This can be done in a better way using newer NextJS features -import sessionConfig from '../../config/session.json'; -import modalsConfig from '../../config/modals.json'; +import { GEN3_COMMONS_NAME, setDRSHostnames } from '@gen3/core'; import drsHostnames from '../../config/drsHostnames.json'; -const colors = Object.fromEntries( - Object.entries(themeColors).map(([key, values]) => [ - key, - Object.values(values) as TenStringArray, - ]), -); - -export default function App({ Component, pageProps }: AppProps) { +interface Gen3AppProps { + colors: Record; + icons: RegisteredIcons; + themeFonts: Fonts; + modalsConfig: ModalsConfig; + sessionConfig: SessionConfiguration; +} +const Gen3App = ({ + Component, + pageProps, + colors, + icons, + themeFonts, + sessionConfig, + modalsConfig, +}: AppProps & Gen3AppProps) => { useEffect(() => { setDRSHostnames(drsHostnames); - }, []); return ( @@ -34,10 +41,75 @@ export default function App({ Component, pageProps }: AppProps) { colors={colors} icons={icons} fonts={themeFonts} - sessionConfig={sessionConfig.sessionConfig} - modalsConfig={modalsConfig as ModalsConfig} + sessionConfig={sessionConfig} + modalsConfig={modalsConfig} > ); -} +}; + +// TODO: replace with page router +Gen3App.getInitialProps = async ( + context: AppContext, +): Promise => { + const ctx = await App.getInitialProps(context); + + try { + const modals = await ContentSource.get( + `config/${GEN3_COMMONS_NAME}/modals.json`, + ); + const session = await ContentSource.get( + `config/${GEN3_COMMONS_NAME}/session.json`, + ); + + const fonts = await ContentSource.get( + `config/${GEN3_COMMONS_NAME}/themeFonts.json`, + ); + + const themeColors = await ContentSource.get( + `config/${GEN3_COMMONS_NAME}/themeColors.json`, + ); + + const colors = Object.fromEntries( + Object.entries(themeColors).map(([key, values]) => [ + key, + Object.values(values) as TenStringArray, + ]), + ); + + const icons = await ContentSource.get('config/icons/gen3.json'); + return { + ...ctx, + modalsConfig: modals, + sessionConfig: session, + themeFonts: fonts as Fonts, + colors: colors, + icons: icons as RegisteredIcons, + }; + } catch (error: unknown) { + if (error instanceof Error) { + console.error('Provider Wrapper error loading config', error.toString()); + } else console.error('Provider wrapper: unknown error'); + } + // return default + return { + ...ctx, + colors: {}, + themeFonts: { + heading: ['Poppins', 'sans-serif'], + content: ['Poppins', 'sans-serif'], + fontFamily: 'Poppins', + }, + icons: { + prefix: 'gen3', + lastModified: 0, + icons: {}, + width: 0, + height: 0, + }, + modalsConfig: {}, + sessionConfig: {}, + }; +}; +export default Gen3App; diff --git a/tailwind.config.js b/tailwind.config.js index f49e613..142084b 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -2,12 +2,13 @@ /* eslint-disable @typescript-eslint/no-var-requires */ const plugin = require('tailwindcss/plugin'); -const themeColors = require('./config/themeColors.json'); -const themeFonts = require('./config/themeFonts.json'); +/* eslint-disable @typescript-eslint/no-var-requires */ +const { GEN3_COMMONS_NAME } = require('@gen3/core'); +const themeColors = require(`./config/${GEN3_COMMONS_NAME}/themeColors.json`); +const themeFonts = require(`./config/${GEN3_COMMONS_NAME}/themeFonts.json`); module.exports = { presets: [require('@gen3/frontend/tailwind')], - // important: '#__next', // Uncommenting this affects tailwind styling in Modals content: [ './src/pages/**/*.{js,ts,jsx,tsx}', './src/components/**/*.{js,ts,jsx,tsx}', From be0e6b87554db4bcb9f5e5da3e59ff73487cf90f Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Wed, 10 Jul 2024 11:31:08 -0500 Subject: [PATCH 05/19] feat: update logo to official Prometheus (#6) --- config/gen3/navigation.json | 2 +- public/icons/Prometheus_logo.png | Bin 0 -> 13 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 public/icons/Prometheus_logo.png diff --git a/config/gen3/navigation.json b/config/gen3/navigation.json index 008c02b..31fd104 100644 --- a/config/gen3/navigation.json +++ b/config/gen3/navigation.json @@ -6,7 +6,7 @@ "navigationPanel": "bg-base-max text-primary" }, "logo": { - "src": "/icons/gen3-dark.svg", + "src": "/icons/Prometheus_logo.png", "height": 128, "href": "/" }, diff --git a/public/icons/Prometheus_logo.png b/public/icons/Prometheus_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5213fb23dc34699739844ece8c4e1d3730a40f GIT binary patch literal 13 UcmaFAe{X=FJC_s}0|NsW048?>i2wiq literal 0 HcmV?d00001 From b6e4ce3aa9810d76d16039b451963c03f5de4ea0 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Wed, 10 Jul 2024 12:10:14 -0500 Subject: [PATCH 06/19] fix: PROMETHEUS PNG logo (#7) Co-authored-by: Andrew Prokhorenkov --- public/icons/Prometheus_logo.png | Bin 13 -> 114713 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/icons/Prometheus_logo.png b/public/icons/Prometheus_logo.png index ba5213fb23dc34699739844ece8c4e1d3730a40f..6f197600b5884de779ade834024d259eba19d8ec 100644 GIT binary patch literal 114713 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 YSe_myK1OV50^UPLQbFRkm{IWm0jUbAQvd(} literal 13 UcmaFAe{X=FJC_s}0|NsW048?>i2wiq From 2b881425a88f599594da99be430b46d8073c5bba Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Fri, 12 Jul 2024 12:11:07 -0500 Subject: [PATCH 07/19] feat: add OCC logo to footer (#8) * feat: add OCC logo to footer * fix: OCC logo PNG * fix: description --- config/gen3/footer.json | 6 ++++++ config/gen3/landingPage.json | 2 +- public/icons/OCC.png | Bin 0 -> 29212 bytes 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 public/icons/OCC.png diff --git a/config/gen3/footer.json b/config/gen3/footer.json index 7584891..ccb53a4 100644 --- a/config/gen3/footer.json +++ b/config/gen3/footer.json @@ -15,6 +15,12 @@ "width": 170, "height": 60, "description": "Created by CTDS" + }, + { + "logo": "/icons/OCC.png", + "width": 150, + "height": 60, + "description": "OCC" } ] ] diff --git a/config/gen3/landingPage.json b/config/gen3/landingPage.json index d0ac75a..416749f 100644 --- a/config/gen3/landingPage.json +++ b/config/gen3/landingPage.json @@ -10,7 +10,7 @@ "splitarea": { "left": [ { - "text": "PROMETHEUS stands for Project for Military Exposures and Toxin History Evaluation in US Service Members. The Prometheus Data Platform (PDP) is part of the President Biden Cancer Moonshot 2.0, which aims to mobilize a national effort to end cancer as we know it. The PDP is a robust data mesh designed to support existing and future Prometheus projects. PDP provides a hybrid governance structure, ensuring a secure and compliant data exchange through specialized software services, referred to as Gen3 Mesh Services." + "text": "PROMETHEUS stands for PROject for Military Exposures and Toxin History Evaluation in US Service Members. The Prometheus Data Platform (PDP) is part of the President Biden Cancer Moonshot 2.0, which aims to mobilize a national effort to end cancer as we know it. The PDP is a robust data mesh designed to support existing and future Prometheus projects. PDP provides a hybrid governance structure, ensuring a secure and compliant data exchange through specialized software services, referred to as Gen3 Mesh Services." }, { "link": { diff --git a/public/icons/OCC.png b/public/icons/OCC.png new file mode 100644 index 0000000000000000000000000000000000000000..e554252958c4717a0c3662ab7371583bc8a437c6 GIT binary patch literal 29212 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 MIW^f&_e}%-AK0+Vxc~qF literal 0 HcmV?d00001 From a2a369572db137e8308ea71aaf2e7987f5249089 Mon Sep 17 00:00:00 2001 From: Craig Barnes Date: Tue, 16 Jul 2024 12:19:25 -0500 Subject: [PATCH 08/19] Update version to 0.10.32 (#9) --- config/gen3/login.json | 2 +- package-lock.json | 148 +- package.json | 8 +- public/images/sideTexture.png | Bin 3086 -> 0 bytes public/images/sideTexture.svg | 2676 +++++++++++++++++++++++++++++++++ 5 files changed, 2815 insertions(+), 19 deletions(-) delete mode 100644 public/images/sideTexture.png create mode 100755 public/images/sideTexture.svg diff --git a/config/gen3/login.json b/config/gen3/login.json index 6443d98..b753e6f 100644 --- a/config/gen3/login.json +++ b/config/gen3/login.json @@ -15,5 +15,5 @@ "className": "text-center text-sm" } ], - "image": "images/sideTexture.png" + "image": "images/sideTexture.svg" } diff --git a/package-lock.json b/package-lock.json index 13ab56d..61e6b6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,14 @@ { "name": "prometheus-data-platform", - "version": "0.10.31", + "version": "0.10.32", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "prometheus-data-platform", - "version": "0.10.31", + "version": "0.10.32", "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.31.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.32.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -17,7 +17,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.31.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.32.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -50,7 +50,7 @@ "npm": ">=10.2.3" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.31.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.32.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } @@ -1843,9 +1843,9 @@ "integrity": "sha512-f7iw44q1EjBv3MNcHCGAgrW/QVyweaEouFsJzykPhTOGnZFSwFJRISToXornOmuAy7xUUGiVdqOLiykgZoYB8A==" }, "node_modules/@gen3/core": { - "version": "0.10.31", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.31.tgz", - "integrity": "sha512-fxaBN7B9y5WuuZKtLcs0owDqotPhc8QUFv9B8vCl0sZPRdMiKqezDV8PlFDK7WPBJUypDf4vYizS74OXADZpsA==", + "version": "0.10.32", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.32.tgz", + "integrity": "sha512-rso78QA8COWa0/KghQbJcnOSoUBfOCavfjMr656E7fM5GMLFPhsijNR769Dt2rESFgBQBjA4NqZst64Ozu5ADQ==", "peer": true, "dependencies": { "@reduxjs/toolkit": "1.9.5", @@ -1866,9 +1866,9 @@ } }, "node_modules/@gen3/frontend": { - "version": "0.10.31", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.31.tgz", - "integrity": "sha512-tAujRvtwHM7ptrwp03Jgul5BygRu1kZhCDDNtdKCOXx9IKodmfadK6vFPXsynHtXkK5bW416Hgr3VdErfC57GA==", + "version": "0.10.32", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.32.tgz", + "integrity": "sha512-9zq67M38rXhyFdJqdGsjAHCRJgw+/EvTd9oftxYSqz9DOiiLVu+pSOJteYRa4Zn/7ChGPx/gmMVNs/X0jLnJMQ==", "dependencies": { "@fontsource/montserrat": "^4.5.12", "@fontsource/source-sans-pro": "^4.5.11", @@ -2079,9 +2079,9 @@ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" }, "node_modules/@gen3/toolsff": { - "version": "0.10.31", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.31.tgz", - "integrity": "sha512-Oaqf9RcS+XmDA+Julit9e/MaZ2LCRIEUaBfqruceF0XNT5e+8iA0UroO157D3dcJFRLgCjliBHK9PpPWCwXQDw==", + "version": "0.10.32", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.32.tgz", + "integrity": "sha512-hchgoJbr+gSKVhMF1kdXrBXuiykWMF5SUGhT4Qr4bIv2jc9xlfQsutLskKgFkNgsCk+xfQ10WJFZdQyo7atzpQ==", "dev": true, "dependencies": { "@iconify/tools": "^2.1.2", @@ -26356,6 +26356,126 @@ "type": "github", "url": "https://github.com/sponsors/wooorm" } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.4.tgz", + "integrity": "sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.4.tgz", + "integrity": "sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.4.tgz", + "integrity": "sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.4.tgz", + "integrity": "sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.4.tgz", + "integrity": "sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.4.tgz", + "integrity": "sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.4.tgz", + "integrity": "sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.4.tgz", + "integrity": "sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } } } } diff --git a/package.json b/package.json index c4fc04c..3d5d2a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "prometheus-data-platform", - "version": "0.10.31", + "version": "0.10.32", "private": "true", "engines": { "npm": ">=10.2.3", @@ -18,7 +18,7 @@ "getDRSToHostname": "node ./node_modules/@gen3/toolsff/dist/getDRSToHostname.esm.js --out=config/" }, "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.31.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.32.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -27,7 +27,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.31.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.32.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -56,7 +56,7 @@ "@typescript-eslint/eslint-plugin": "^7.12.0" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.31.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.32.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } diff --git a/public/images/sideTexture.png b/public/images/sideTexture.png deleted file mode 100644 index 2327f88655d5e5bf2257b77e742636987fef9c8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3086 zcmeAS@N?(olHy`uVBq!ia0vp^wG0d_OE}noEWdxO7l9OKfk$L90|T=e2s1W)IldGq zC|TkfQ4*Y=R#Ki=l*&+EUaps!mtCBkSdglhUz9%kosAR&1NUrC7srr_Id8A*?TSs6 zXnUCNJFU~+QB7dWrVjT6-4}*B8zz1+vs5}Q;&@Q&qOriGh?`NXVpm!89ok`hGc2>o z_t@4O)jQU|W{`{9@o?_6R7sin&(F)B|86H?pSQ7g(@~A%zF!nBHoNc(*?Q2LG3&Xy z|GYdyo44QRzn}KBs5|%H{K}q>FU1a*AG4@5YkT2-qM9Dgpo34bTe0Bh1@=8f|0gfs ze*Cw%dAPitwe|mJ&!5h}TE2ec;!eA~y)_oGd%hmMwfXYe-QSN(++Vl1dT!-=$3^U& zaw=65UW_tE17YZ;gwG54EzI`c-xqOg#=d(AzuNoH<=1UJ_)c2*uj%C(_ipxoe0Xd3 zZ^L(M_Ev`8s~%0{qd9$K6?Z1`zZ$~*zCFHKC$)c_olWoOtLE!>F7EvIV)=PFnO|*O z?`dBxW3Q~})hHOAwm);0KTvON8ygq%PQHHU(QPl>-{frnv+d}*@1q%f5&PM8y9YP! z?5=pfJO19k$G^9h|F_%wF=@{Fy;Y`*_NQ&X9b31j`uqB;?f+wHKc3q2eUK)_7x8Ty X-C0iX7JdY_ + +BG +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f4ae864d3698e047bcbd844774b80797ec107483 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Mon, 22 Jul 2024 09:58:52 -0500 Subject: [PATCH 09/19] Update landingPage.json (#10) --- config/gen3/landingPage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/gen3/landingPage.json b/config/gen3/landingPage.json index 416749f..dd161cc 100644 --- a/config/gen3/landingPage.json +++ b/config/gen3/landingPage.json @@ -10,7 +10,7 @@ "splitarea": { "left": [ { - "text": "PROMETHEUS stands for PROject for Military Exposures and Toxin History Evaluation in US Service Members. The Prometheus Data Platform (PDP) is part of the President Biden Cancer Moonshot 2.0, which aims to mobilize a national effort to end cancer as we know it. The PDP is a robust data mesh designed to support existing and future Prometheus projects. PDP provides a hybrid governance structure, ensuring a secure and compliant data exchange through specialized software services, referred to as Gen3 Mesh Services." + "text": "PROMETHEUS stands for PROject for Military Exposures and Toxin History Evaluation in US Service Members. The PROMETHEUS Data Platform (PDP) is a data mesh to support the PROMETHEUS project.
The goal of the PROMETHEUS is to discover and study advanced precision technologies that will enable prevention, early detection, and enhanced treatments of cancers potentially arising due to exposures to environmental contaminants and toxin hazards by military service members and veterans.
The vision of PROMETHEUS is to integrate federal scientific platforms with public-private innovators revealing the impact of service-related exposures to environmental contaminants and toxin hazards and developing prevention and early detection approaches and advanced treatments of cancers arising from these exposures." }, { "link": { From 0a060084887bf32be73c5b633623d4defa851337 Mon Sep 17 00:00:00 2001 From: Craig Barnes Date: Tue, 23 Jul 2024 14:43:52 -0500 Subject: [PATCH 10/19] Update to Gen3.2 version 0.10.33: Crosswalk and Multitab Discovery (#11) * update config * update gen3/core version * update gen3/core version to fix integrity issue --- config/gen3/crosswalk.json | 30 + config/gen3/discovery.json | 785 ++++++++++++++++------- config/gen3/navigation.json | 12 +- config/icons/comparison.svg | 1 + config/icons/gen3.json | 7 +- package-lock.json | 278 ++++---- package.json | 6 +- src/lib/Discovery/CustomRowRenderers.tsx | 121 ++-- src/pages/Crosswalk.tsx | 7 + 9 files changed, 797 insertions(+), 450 deletions(-) create mode 100644 config/gen3/crosswalk.json create mode 100644 config/icons/comparison.svg create mode 100644 src/pages/Crosswalk.tsx diff --git a/config/gen3/crosswalk.json b/config/gen3/crosswalk.json new file mode 100644 index 0000000..a9af2d4 --- /dev/null +++ b/config/gen3/crosswalk.json @@ -0,0 +1,30 @@ +{ + "showSubmittedIdInTable" : true, + "mapping" : { + "source" : { + "id": "prom", + "label": "dbGaP", + "description" : "PROject for Military Exposures and Toxin History Evaluation in US Service Members" + }, + "external" : [ + { + "id": "GDC", + "label": "Genomic Data Commons", + "dataPath": "crosswalk->subject->https://portal.gdc.cancer.gov->case.case_id->value", + "description": "A repository and computational platform for cancer researchers who need to understand cancer, its clinical progression, and response to therapy." + }, + { + "id": "VPOC", + "label": "VPOC", + "dataPath": "crosswalk->subject->https://vpodc.data-commons.org->case.submitter_id->value", + "description": "Veterans Precision Oncology Data Commons® (VPOC) The Veterans Data Commons supports the management, analysis and sharing of veteran oncologic data for the research community and aims to accelerate discovery and development of therapies, diagnostic tests, and other technologies for precision oncology" + }, + { + "id": "TCIA", + "label": "TCIA", + "dataPath": "crosswalk->subject->https://www.cancerimagingarchive.net->subject.subject_id->value", + "description": "The Cancer Imaging Archive (TCIA) is a service which de-identifies and hosts a large archive of medical images of cancer accessible for public download" + } + ] + } +} diff --git a/config/gen3/discovery.json b/config/gen3/discovery.json index 74740a0..7b61b65 100644 --- a/config/gen3/discovery.json +++ b/config/gen3/discovery.json @@ -1,284 +1,587 @@ { - "tableConfig": { - "selectableRows": true, - "expandableRows": true - }, - "features": { - "dataFetchFunction": "AggMDSAllLocal", - "aiSearch" : true, - "advSearchFilters": { - "enabled": false, - "field": "advSearchFilters", - "displayName": "Filters", - "filters": [ + "metadataConfig": [ + { + "label": "Studies", + "tableConfig": { + "selectableRows": false, + "expandableRows": true + }, + "features": { + "dataLoader": { + "dataFetchFunction": "IndexedAggMDSAllLocal", + "dataFetchArgs": { + "indexKeys": [ + "BloodPAC-study-level-metadata", + "VPODC-study-level-metadata" + ] + } + }, + "aiSearch": false, + "advSearchFilters": { + "enabled": false, + "field": "advSearchFilters", + "displayName": "Filters", + "filters": [ + { + "key": "Research Focus Area" + }, + { + "key": "Administering IC(s)" + }, + { + "key": "Simulated vs. Real Data" + }, + { + "key": "Year Grant Awarded" + }, + { + "key": "Study Description" + } + ] + }, + "pageTitle": { + "enabled": false, + "text": "Study Discovery" + }, + "tagsColumn": { + "enabled": false + }, + "tagsInDescription": { + "enabled": true + }, + "search": { + "searchBar": { + "enabled": true, + "searchableTextFields": [ + "short_name", + "full_name", + "study_description", + "study_id" + ] + }, + "tagSearchDropdown": { + "enabled": true, + "collapsibleButtonText": "Data Commons" + }, + "exportToWorkspace": { + "enabled": true, + "manifestFieldName": "__manifest", + "enableDownloadManifest": true, + "downloadManifestButtonText": "Download", + "documentationLinks": { + "gen3Client": "https://gen3.org/resources/user/gen3-client/", + "gen3Workspaces": "https://gen3.org/resources/user/analyze-data/" + } + } + }, + "authorization": { + "enabled": true, + "columnTooltip": "Filter by data access. Accessible indicates you are authorized to access. Not accessible indicates you are not authorized to access.", + "supportedValues": { + "accessible": { + "enabled": true, + "menuText": "Available" + }, + "unaccessible": { + "enabled": false, + "menuText": "Not Accessible" + }, + "pending": { + "enabled": false, + "menuText": "Pending" + }, + "notAvailable": { + "enabled": false, + "menuText": "Not Available" + } + } + } + }, + "aggregations": [ + { + "name": "Studies", + "field": "_unique_id", + "type": "count" + } + ], + "tagSelector": { + "title": "Tags by category" + }, + "studyColumns": [ + { + "name": "Study/Project Name", + "field": "short_name", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "n/a", + "width": "157px", + "contentType": "string" + }, { - "key": "Research Focus Area" + "name": "Full Name", + "field": "full_name", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "n/a", + "contentType": "string" }, { - "key": "Administering IC(s)" + "name": "Number of Subjects", + "field": "_subjects_count", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "n/a", + "contentType": "number" }, { - "key": "Simulated vs. Real Data" + "name": "ID Number", + "field": "study_id", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "n/a", + "contentType": "string" }, { - "key": "Year Grant Awarded" + "name": "Data Commons", + "field": "commons", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "n/a", + "contentType": "link", + "cellRenderFunction": "withURL", + "params": { + "hrefValueFromField": "commons_url", + "transform" : "uppercase" + } }, { - "key": "Study Description" + "name": "DATA ACCESS METHOD", + "field": "data_access_method", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "API", + "contentType": "string" } - ] - }, - "pageTitle": { - "enabled": false, - "text": "Study Discovery" - }, - "tagsColumn": { - "enabled": false - }, - "tagsInDescription": { - "enabled": true - }, - "search": { - "searchBar": { - "enabled": true, - "searchableTextFields": [ - "short_name", - "full_name", - "study_description", - "study_id" + ], + "studyPreviewField": { + "name": "Description", + "field": "study_description", + "contentType": "string", + "includeName": false, + "includeIfNotAvailable": true, + "valueIfNotAvailable": "No description has been provided for this study." + }, + "simpleDetailsView": { + "showAllAvailableFields": false, + "header": { + "field": "name" + }, + "fieldsToShow": [ + { + "groupWidth": "half", + "includeName": false, + "fields": [ + { + "name": "Unique ID", + "field": "_unique_id", + "contentType": "string" + }, + { + "name": "Study ID", + "field": "_unique_id", + "contentType": "string" + }, + { + "name": "Study/Project Name:", + "field": "short_name", + "contentType": "text", + "includeName": true, + "includeIfNotAvailable": true, + "valueIfNotAvailable": "N/A" + }, + { + "name": "Full Name", + "field": "full_name", + "contentType": "string" + }, + { + "name": "Number of Subjects", + "field": "_subjects_count", + "contentType": "string", + "includeIfNotAvailable": true + }, + { + "name": "Study URL", + "field": "study_url", + "contentType": "link", + "includeIfNotAvailable": true + }, + { + "name": "Data Commons", + "field": "commons", + "contentType": "string", + "includeIfNotAvailable": true, + "params" : { + "style" : "uppercase" + } + } + ] + }, + { + "groupWidth": "half", + "fields": [ + { + "name": "Description", + "field": "study_description", + "contentType": "paragraphs", + "includeName": true, + "includeIfNotAvailable": true, + "valueIfNotAvailable": "No description has been provided for this study." + } + ] + } ] }, - "tagSearchDropdown": { - "enabled": true, - "collapsibleButtonText": "Data Commons" + "minimalFieldMapping": { + "tagsListFieldName": "tags", + "authzField": "authz", + "uid": "_unique_id" }, - "exportToWorkspace": { - "enabled": true, - "manifestFieldName": "__manifest", - "enableDownloadManifest": true, - "downloadManifestButtonText": "Download", - "documentationLinks": { - "gen3Client": "https://gen3.org/resources/user/gen3-client/", - "gen3Workspaces": "https://gen3.org/resources/user/analyze-data/" - } + "tags": { + "tagCategories": [ + { + "name": "Cancer Type", + "color": "rgba(129, 211, 248, 1)", + "display": true + }, + { + "name": "Cancer Type", + "color": "rgba(129, 211, 248, 1)", + "display": false + }, + { + "name": "Study Setting", + "color": "rgba(112, 182, 3, 1)", + "display": true + } + ] } }, - "authorization": { - "enabled": true, - "columnTooltip": "Filter by data access. Accessible indicates you are authorized to access. Not accessible indicates you are not authorized to access.", - "supportedValues": { - "accessible": { - "enabled": true, - "menuText": "Available" + { + "label": "Subjects", + "tableConfig": { + "selectableRows": false, + "expandableRows": true + }, + "features": { + "dataLoader": { + "dataFetchFunction": "IndexedAggMDSAllLocal", + "dataFetchArgs": { + "indexKeys": [ + "VPODC-subject-level-metadata", + "APOLLO-subject-level-metadata", + "BloodPAC-subject-level-metadata" + ] + } }, - "unaccessible": { + "aiSearch": false, + "advSearchFilters": { "enabled": false, - "menuText": "Not Accessible" + "field": "advSearchFilters", + "displayName": "Filters", + "filters": [ + { + "key": "Research Focus Area" + }, + { + "key": "Administering IC(s)" + }, + { + "key": "Simulated vs. Real Data" + }, + { + "key": "Year Grant Awarded" + }, + { + "key": "Study Description" + } + ] }, - "pending": { + "pageTitle": { "enabled": false, - "menuText": "Pending" + "text": "Study Discovery" }, - "notAvailable": { - "enabled": false, - "menuText": "Not Available" + "tagsColumn": { + "enabled": false + }, + "tagsInDescription": { + "enabled": true + }, + "search": { + "searchBar": { + "enabled": true, + "searchableTextFields": [ + "subject_primary_disease", + "subject_cancer_type", + "subject_metastasis", + "subject_gender", + "subject_race", + "subject_ethnicity", + "subject_id" + ] + }, + "tagSearchDropdown": { + "enabled": true, + "collapsibleButtonText": "Data Commons" + }, + "exportToWorkspace": { + "enabled": true, + "manifestFieldName": "__manifest", + "enableDownloadManifest": true, + "downloadManifestButtonText": "Download", + "documentationLinks": { + "gen3Client": "https://gen3.org/resources/user/gen3-client/", + "gen3Workspaces": "https://gen3.org/resources/user/analyze-data/" + } + } + }, + "authorization": { + "enabled": true, + "columnTooltip": "Filter by data access. Accessible indicates you are authorized to access. Not accessible indicates you are not authorized to access.", + "supportedValues": { + "accessible": { + "enabled": true, + "menuText": "Available" + }, + "unaccessible": { + "enabled": false, + "menuText": "Not Accessible" + }, + "pending": { + "enabled": false, + "menuText": "Pending" + }, + "notAvailable": { + "enabled": false, + "menuText": "Not Available" + } + } } - } - } - }, - "aggregations": [ - { - "name": "Studies", - "field": "_unique_id", - "type": "count" - }, - { - "name": "Total Subjects", - "field": "_subjects_count", - "type": "sum" - } - ], - "tagSelector": { - "title": "Tags by category" - }, - "studyColumns": [ - { - "name": "Study Name", - "field": "short_name", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", - "width": "157px", - "contentType": "string" - }, - { - "name": "Full Name", - "field": "full_name", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", - "width": "400px", - "contentType": "string" - }, - { - "name": "Number of Subjects", - "field": "_subjects_count", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", - "contentType": "number", - "width": "98px" - }, - { - "name": "ID Number", - "field": "study_id", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", - "width": "152px", - "contentType": "string" - }, - { - "name": "Data Commons", - "field": "commons", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", - "contentType": "link", - "cellRenderFunction": "withURL", - "params": { - "hrefValueFromField": "commons_url" - } - }, - { - "name": "DATA ACCESS METHOD", - "field": "data_access_method", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "API", - "contentType": "string" - } - ], - "studyPreviewField": { - "name": "Description", - "field": "study_description", - "contentType": "string", - "includeName": false, - "includeIfNotAvailable": true, - "valueIfNotAvailable": "No description has been provided for this study." - }, - "simpleDetailsView": { - "showAllAvailableFields": false, - "header": { - "field": "name" - }, - "fieldsToShow": [ - { - "groupName": "Study Identifiers", - "groupWidth": "half", + }, + "aggregations": [ + { + "name": "Subjects", + "field": "gen3MDSGUID", + "type": "count" + } + ], + "tagSelector": { + "title": "Tags by category" + }, + "studyColumns": [ + { + "name": "Cancer Type", + "field": "subject_cancer_type", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string" + }, + { + "name": "Primary Disease", + "field": "subject_primary_disease", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string" + }, + { + "name": "Metastasis", + "field": "subject_metastasis", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "number" + }, + { + "name": "Biological Sex", + "field": "subject_gender", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string" + }, + { + "name": "Race", + "field": "subject_race", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string" + }, + { + "name": "Ethnicity", + "field": "subject_ethnicity", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string" + }, + { + "name": "ID Number", + "field": "subject_id", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string" + }, + { + "name": "Data Commons", + "field": "commons", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "link", + "cellRenderFunction": "withURL", + "params": { + "hrefValueFromField": "commons_url", + "transform": "uppercase" + } + }, + { + "name": "DATA ACCESS METHOD", + "field": "data_access_method", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "API", + "contentType": "string" + } + ], + "studyPreviewField": { + "name": "Description", + "field": "study_description", + "contentType": "string", "includeName": false, - "fields": [ + "includeIfNotAvailable": true, + "valueIfNotAvailable": "No description has been provided for this study." + }, + "simpleDetailsView": { + "showAllAvailableFields": true, + "header": { + "field": "name" + }, + "fieldsToShow": [ + { + "groupWidth": "full", + "includeName": false, + "fields": [ + { + "name": "Prometheus ID", + "field": "_unique_id", + "contentType": "string" + }, + { + "name": "Apollo ID", + "field": "subject_apollo_id", + "contentType": "string" + }, + { + "name": "Year born", + "field": "subject_year_of_birth", + "renderer": "yearOfBirthRestricted" + }, + { + "name": "Race", + "field": "subject_race", + "contentType": "string" + }, + { + "name": "Biological Sex", + "field": "subject_gender", + "contentType": "string" + }, + { + "name": "Ethnicity", + "field": "subject_ethnicity", + "contentType": "string" + }, + { + "name": "Primary Disease", + "field": "subject_primary_disease", + "contentType": "string" + }, + { + "name": "Cancer Type", + "field": "subject_cancer_type", + "contentType": "string" + }, + { + "name": "Metastasis", + "field": "subject_metastasis", + "contentType": "string" + }, + { + "name": "Cancer Grade", + "field": "subject_cancer_grade", + "contentType": "string" + }, + { + "name": "Cancer Stage", + "field": "subject_cancer_stage", + "contentType": "string" + }, + { + "name": "Type of Exposure", + "field": "subject_type_of_exposure", + "contentType": "string" + }, + { + "name": "Chemical/agents exposed to", + "field": "subject_chemical_agents_of_exposure", + "contentType": "string" + } + ] + } + ] + }, + "minimalFieldMapping": { + "tagsListFieldName": "tags", + "authzField": "authz", + "uid": "_unique_id" + }, + "tags": { + "tagCategories": [ { - "name": "Number of Subjects", - "field": "_subjects_count", - "contentType": "number" + "name": "ethnicity", + "display": false }, { - "name": "Full Name", - "field": "full_name", - "contentType": "string" + "name": "year_of_birth", + "color": "rgba(129, 211, 248, 1)", + "display": false }, { - "name": "Short Name", - "field": "short_name", - "contentType": "text", - "includeName": true, - "includeIfNotAvailable": true, - "valueIfNotAvailable": "N/A" + "name": "gender", + "color": "rgba(129, 211, 248, 1)", + "display": false }, { - "name": "dbGaP Accession Number", - "field": "dbgap_accession", - "contentType": "text", - "includeName": true, - "includeIfNotAvailable": false + "name": "race", + "color": "rgba(129, 211, 248, 1)", + "display": false }, { - "name": "Project ID", - "field": "project_id", - "contentType": "text", - "includeIfNotAvailable": false + "name": "cancer_type", + "color": "rgba(129, 211, 248, 1)", + "display": true }, { - "name": "Data Commons", - "field": "commons", - "contentType": "text", - "includeIfNotAvailable": false + "name": "cancer_grade", + "color": "rgba(129, 211, 248, 1)", + "display": true }, { - "name": "Tutorial Notebook", - "field": "tutorial_notebook", - "contentType": "text", - "includeIfNotAvailable": true, - "valueIfNotAvailable": "NO" - } - ] - }, - { - "groupWidth": "full", - "fields": [ + "name": "type_of_exposure", + "color": "rgba(129, 211, 248, 1)", + "display": true + }, + { + "name": "metastasis", + "color": "rgba(129, 211, 248, 1)", + "display": false + }, { - "name": "Description", - "field": "study_description", - "contentType": "paragraphs", - "includeName": true, - "includeIfNotAvailable": true, - "valueIfNotAvailable": "No description has been provided for this study." + "name": "primary_disease'", + "color": "rgba(129, 211, 248, 1)", + "display": true } ] } - ] - }, - "minimalFieldMapping": { - "tagsListFieldName": "tags", - "authzField": "authz", - "uid": "_unique_id" - }, - "tagCategories": [ - { - "name": "Commons", - "displayName": "Data Commons", - "color": "rgba(129, 211, 248, 1)", - "display": true - }, - { - "name": "Program", - "color": "rgba(129, 211, 248, 1)", - "display": false - }, - { - "name": "Study Registration", - "color": "rgba(236, 128, 141, 1)", - "display": false - }, - { - "name": "Data Type", - "color": "rgba(112, 182, 3, 1)", - "display": false - }, - { - "name": "primary_site", - "color": "rgba(112, 182, 3, 1)", - "display": false - }, - { - "name": "disease_type", - "color": "rgba(112, 182, 3, 1)", - "display": false - }, - { - "name": "data_type", - "color": "rgba(112, 182, 3, 1)", - "display": false - }, - { - "name": "clinical_study_type", - "color": "rgba(112, 182, 3, 1)", - "display": false } ] } diff --git a/config/gen3/navigation.json b/config/gen3/navigation.json index 31fd104..ca5b998 100644 --- a/config/gen3/navigation.json +++ b/config/gen3/navigation.json @@ -17,18 +17,18 @@ "name": "Discovery", "tooltip": "Use free-text search and tags to rapidly find relevant studies." }, + { + "icon": "gen3:comparison", + "href": "/Crosswalk", + "name": "Crosswalk", + "tooltip": "Match ids across the mesh." + }, { "icon": "gen3:dictionary", "href": "/DataDictionary", "name": "Dictionary", "tooltip": "The Data Dictionary serves to inform the data model and is updated as new data is ingested." }, - { - "icon": "gen3:exploration", - "href": "/Explorer", - "name": "Exploration", - "tooltip": "The Exploration Page enables discovery of the data at the subject level and features a cohort builder." - }, { "icon": "gen3:profile", "href": "/Profile", diff --git a/config/icons/comparison.svg b/config/icons/comparison.svg new file mode 100644 index 0000000..114deb8 --- /dev/null +++ b/config/icons/comparison.svg @@ -0,0 +1 @@ + diff --git a/config/icons/gen3.json b/config/icons/gen3.json index 21bf7fd..45c67db 100644 --- a/config/icons/gen3.json +++ b/config/icons/gen3.json @@ -1,6 +1,6 @@ { "prefix": "gen3", - "lastModified": 1718898014, + "lastModified": 1721757073, "icons": { "analysis": { "body": "", @@ -19,6 +19,11 @@ "width": 58.026, "height": 58.026 }, + "comparison": { + "body": "", + "width": 512, + "height": 512 + }, "datafile": { "body": "", "width": 60, diff --git a/package-lock.json b/package-lock.json index 61e6b6e..9245ccc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "prometheus-data-platform", "version": "0.10.32", "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.32.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.34.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -17,7 +17,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.32.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.34.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -50,7 +50,7 @@ "npm": ">=10.2.3" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.32.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.34.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } @@ -1843,14 +1843,15 @@ "integrity": "sha512-f7iw44q1EjBv3MNcHCGAgrW/QVyweaEouFsJzykPhTOGnZFSwFJRISToXornOmuAy7xUUGiVdqOLiykgZoYB8A==" }, "node_modules/@gen3/core": { - "version": "0.10.32", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.32.tgz", - "integrity": "sha512-rso78QA8COWa0/KghQbJcnOSoUBfOCavfjMr656E7fM5GMLFPhsijNR769Dt2rESFgBQBjA4NqZst64Ozu5ADQ==", + "version": "0.10.34", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.34.tgz", + "integrity": "sha512-it/8BGI5s352pgWYYCvCy5IytjYCK7R07HeN3IeuILgrsAoYj3ecq44OjUHCvOR0KbsUac0EoN3mh1Wq8EOovg==", "peer": true, "dependencies": { "@reduxjs/toolkit": "1.9.5", "flat": "^6.0.1", "papaparse": "^5.4.1", + "queue": "6.0.2", "react-redux": "^8.1.0", "redux-persist": "^6.0.0", "uuid": "^9.0.1" @@ -1866,9 +1867,9 @@ } }, "node_modules/@gen3/frontend": { - "version": "0.10.32", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.32.tgz", - "integrity": "sha512-9zq67M38rXhyFdJqdGsjAHCRJgw+/EvTd9oftxYSqz9DOiiLVu+pSOJteYRa4Zn/7ChGPx/gmMVNs/X0jLnJMQ==", + "version": "0.10.34", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.34.tgz", + "integrity": "sha512-/r4LhGQBPlXlyw6qwT4fJeNBrFXK3QCp4JjvwZFkOpdmkYIT0C67iVf+eJzg3WSPQaaFuMpEa9jKrrzepGT3LQ==", "dependencies": { "@fontsource/montserrat": "^4.5.12", "@fontsource/source-sans-pro": "^4.5.11", @@ -1921,7 +1922,7 @@ "react-markdown": "^9.0.1", "react-minisearch": "^6.3.0", "react-plotly.js": "^2.5.1", - "react-redux": "^8.0.7", + "react-redux": "^8.1.0", "react-table": "^7.8.0", "recharts": "^2.4.3", "remark-gfm": "^4.0.0", @@ -1942,7 +1943,7 @@ "npm": ">=10.2.3" }, "peerDependencies": { - "@gen3/core": "^0.10.21", + "@gen3/core": "^0.10.33", "react": "^18.2.0", "react-dom": "^18.2.0", "typescript": "5.0.2" @@ -2079,9 +2080,9 @@ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" }, "node_modules/@gen3/toolsff": { - "version": "0.10.32", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.32.tgz", - "integrity": "sha512-hchgoJbr+gSKVhMF1kdXrBXuiykWMF5SUGhT4Qr4bIv2jc9xlfQsutLskKgFkNgsCk+xfQ10WJFZdQyo7atzpQ==", + "version": "0.10.34", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.34.tgz", + "integrity": "sha512-C66tZ+3EUgnJdbvLhBxktCsxXIx2LW0+jDgs43pbS5+6Zmt4mqtmmhd+qJqxjIIvh3/wDNozhuFJ/hRvQp0t7Q==", "dev": true, "dependencies": { "@iconify/tools": "^2.1.2", @@ -4421,6 +4422,126 @@ "node": ">= 10" } }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.4.tgz", + "integrity": "sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.4.tgz", + "integrity": "sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.4.tgz", + "integrity": "sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.4.tgz", + "integrity": "sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.4.tgz", + "integrity": "sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.4.tgz", + "integrity": "sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.4.tgz", + "integrity": "sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.4.tgz", + "integrity": "sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -21041,6 +21162,15 @@ ], "peer": true }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "peer": true, + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -26356,126 +26486,6 @@ "type": "github", "url": "https://github.com/sponsors/wooorm" } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.4.tgz", - "integrity": "sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.4.tgz", - "integrity": "sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.4.tgz", - "integrity": "sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.4.tgz", - "integrity": "sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.4.tgz", - "integrity": "sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.4.tgz", - "integrity": "sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.4.tgz", - "integrity": "sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.4.tgz", - "integrity": "sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } } } } diff --git a/package.json b/package.json index 3d5d2a7..a67696e 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "getDRSToHostname": "node ./node_modules/@gen3/toolsff/dist/getDRSToHostname.esm.js --out=config/" }, "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.32.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.34.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -27,7 +27,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.32.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.34.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -56,7 +56,7 @@ "@typescript-eslint/eslint-plugin": "^7.12.0" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.32.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.34.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } diff --git a/src/lib/Discovery/CustomRowRenderers.tsx b/src/lib/Discovery/CustomRowRenderers.tsx index 3772d93..dcf0101 100644 --- a/src/lib/Discovery/CustomRowRenderers.tsx +++ b/src/lib/Discovery/CustomRowRenderers.tsx @@ -7,78 +7,69 @@ import { RowRenderFunctionParams, DiscoveryRowRendererFactory, useDiscoveryContext, - getTagColor, + getTagInfo, + TagData, } from '@gen3/frontend'; +const DetailsWithTagsRowRenderer = ( + { row }: RowRenderFunctionParams, + studyPreviewConfig?: StudyDetailsField, +): ReactElement => { + const { discoveryConfig: config } = useDiscoveryContext(); -interface TagData { - name: string; - category: string; -} + if (!studyPreviewConfig) { + return ; + } + const value = + JSONPath({ + json: row.original, + path: studyPreviewConfig.field, + }) ?? + config?.studyPreviewField?.valueIfNotAvailable ?? + ''; -const DetailsWithTagsRowRenderer = - ( - { row } : RowRenderFunctionParams, - studyPreviewConfig?: StudyDetailsField, - ): ReactElement => { - const { discoveryConfig: config, setStudyDetails } = useDiscoveryContext(); + return ( + +

+ + {value} + - if (!studyPreviewConfig) { - return ; - } - const value = - JSONPath({ - json: row.original, - path: studyPreviewConfig.field, - }) ?? - config?.studyPreviewField?.valueIfNotAvailable ?? - ''; +
+ {row.original?.tags.map((tagInfo: TagData) => { + const { color, display, label } = getTagInfo(tagInfo, config.tags); - return ( - { - setStudyDetails(() => { - return { ...row.original }; - }); - }} - > -
- - {value} - - -
- {row.original?.tags.map(({ name, category }: TagData) => { - const color = getTagColor(category, config.tagCategories); - if (name === '') return null; // no tag - return ( - - {name} - - ); - })} -
+ if (tagInfo.name === '') return null; // no tag + if (!display) return null; + return ( + + {label} + + ); + })}
-
- ); - }; +
+ + ); +}; export default DetailsWithTagsRowRenderer; diff --git a/src/pages/Crosswalk.tsx b/src/pages/Crosswalk.tsx new file mode 100644 index 0000000..6474055 --- /dev/null +++ b/src/pages/Crosswalk.tsx @@ -0,0 +1,7 @@ +import { + CrosswalkPage, + CrosswalkPageGetServerSideProps as getServerSideProps, +} from '@gen3/frontend'; +export default CrosswalkPage; + +export { getServerSideProps }; From a382c3717cb1f83f5c477a3bf98edd168f22c68a Mon Sep 17 00:00:00 2001 From: Craig Barnes Date: Tue, 23 Jul 2024 15:35:45 -0500 Subject: [PATCH 11/19] Fix/config (#12) * update config * update config --- config/gen3/crosswalk.json | 6 +++--- config/gen3/discovery.json | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/config/gen3/crosswalk.json b/config/gen3/crosswalk.json index a9af2d4..eba3dd7 100644 --- a/config/gen3/crosswalk.json +++ b/config/gen3/crosswalk.json @@ -10,12 +10,12 @@ { "id": "GDC", "label": "Genomic Data Commons", - "dataPath": "crosswalk->subject->https://portal.gdc.cancer.gov->case.case_id->value", + "dataPath": "crosswalk->subject->https://portal.gdc.cancer.gov->submitter_id->value", "description": "A repository and computational platform for cancer researchers who need to understand cancer, its clinical progression, and response to therapy." }, { - "id": "VPOC", - "label": "VPOC", + "id": "PDC", + "label": "PDC", "dataPath": "crosswalk->subject->https://vpodc.data-commons.org->case.submitter_id->value", "description": "Veterans Precision Oncology Data Commons® (VPOC) The Veterans Data Commons supports the management, analysis and sharing of veteran oncologic data for the research community and aims to accelerate discovery and development of therapies, diagnostic tests, and other technologies for precision oncology" }, diff --git a/config/gen3/discovery.json b/config/gen3/discovery.json index 7b61b65..4973f9f 100644 --- a/config/gen3/discovery.json +++ b/config/gen3/discovery.json @@ -12,7 +12,8 @@ "dataFetchArgs": { "indexKeys": [ "BloodPAC-study-level-metadata", - "VPODC-study-level-metadata" + "VPODC-study-level-metadata", + "APOLLO-study-level-metadata" ] } }, From 75c8415c928ab3c96d6346a70cf1a6d0fa262466 Mon Sep 17 00:00:00 2001 From: Craig Barnes Date: Wed, 24 Jul 2024 12:42:43 -0500 Subject: [PATCH 12/19] update to 0.10.35 (#13) --- config/gen3/crosswalk.json | 15 +- config/gen3/discovery.json | 412 +++++++++++++++++++------------------ package-lock.json | 24 +-- package.json | 6 +- 4 files changed, 239 insertions(+), 218 deletions(-) diff --git a/config/gen3/crosswalk.json b/config/gen3/crosswalk.json index eba3dd7..94dee11 100644 --- a/config/gen3/crosswalk.json +++ b/config/gen3/crosswalk.json @@ -1,15 +1,20 @@ { - "showSubmittedIdInTable" : true, + "showSubmittedIdInTable" : false, "mapping" : { "source" : { "id": "prom", - "label": "dbGaP", + "label": "Prometheus", "description" : "PROject for Military Exposures and Toxin History Evaluation in US Service Members" }, "external" : [ + { + "id": "Prometheus", + "label": "Prometheus", + "dataPath": "crosswalk->subject->https://www.cancerimagingarchive.net->subject.subject_id->value" + }, { "id": "GDC", - "label": "Genomic Data Commons", + "label": "GDC", "dataPath": "crosswalk->subject->https://portal.gdc.cancer.gov->submitter_id->value", "description": "A repository and computational platform for cancer researchers who need to understand cancer, its clinical progression, and response to therapy." }, @@ -20,8 +25,8 @@ "description": "Veterans Precision Oncology Data Commons® (VPOC) The Veterans Data Commons supports the management, analysis and sharing of veteran oncologic data for the research community and aims to accelerate discovery and development of therapies, diagnostic tests, and other technologies for precision oncology" }, { - "id": "TCIA", - "label": "TCIA", + "id": "Bloodpac", + "label": "Bloodpac", "dataPath": "crosswalk->subject->https://www.cancerimagingarchive.net->subject.subject_id->value", "description": "The Cancer Imaging Archive (TCIA) is a service which de-identifies and hosts a large archive of medical images of cancer accessible for public download" } diff --git a/config/gen3/discovery.json b/config/gen3/discovery.json index 4973f9f..c2512f1 100644 --- a/config/gen3/discovery.json +++ b/config/gen3/discovery.json @@ -1,7 +1,7 @@ { "metadataConfig": [ { - "label": "Studies", + "label": "Subjects", "tableConfig": { "selectableRows": false, "expandableRows": true @@ -11,10 +11,19 @@ "dataFetchFunction": "IndexedAggMDSAllLocal", "dataFetchArgs": { "indexKeys": [ - "BloodPAC-study-level-metadata", - "VPODC-study-level-metadata", - "APOLLO-study-level-metadata" - ] + "VPODC-subject-level-metadata", + "APOLLO-subject-level-metadata", + "BloodPAC-subject-level-metadata" + ], + "hasEnoughData": { + "keys": [ + "subject_primary_disease", + "subject_gender", + "subject_race", + "subject_ethnicity" + ], + "limit": 4 + } } }, "aiSearch": false, @@ -54,10 +63,14 @@ "searchBar": { "enabled": true, "searchableTextFields": [ - "short_name", - "full_name", - "study_description", - "study_id" + "subject_primary_disease", + "subject_cancer_type", + "subject_metastasis", + "subject_gender", + "subject_race", + "subject_ethnicity", + "subject_id", + "commons" ] }, "tagSearchDropdown": { @@ -100,8 +113,8 @@ }, "aggregations": [ { - "name": "Studies", - "field": "_unique_id", + "name": "Subjects", + "field": "gen3MDSGUID", "type": "count" } ], @@ -110,44 +123,68 @@ }, "studyColumns": [ { - "name": "Study/Project Name", - "field": "short_name", + "name": "Cancer Type", + "field": "subject_cancer_type", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", - "width": "157px", + "valueIfNotAvailable": "", "contentType": "string" }, { - "name": "Full Name", - "field": "full_name", + "name": "Primary Disease", + "field": "subject_primary_disease", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", + "valueIfNotAvailable": "", "contentType": "string" }, { - "name": "Number of Subjects", - "field": "_subjects_count", + "name": "Metastasis", + "field": "subject_metastasis", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", + "valueIfNotAvailable": "", "contentType": "number" }, { - "name": "ID Number", - "field": "study_id", + "name": "Biological Sex", + "field": "subject_gender", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", + "valueIfNotAvailable": "", "contentType": "string" }, + { + "name": "Race", + "field": "subject_race", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string" + }, + { + "name": "Ethnicity", + "field": "subject_ethnicity", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string" + }, + { + "name": "ID Number", + "field": "gen3MDSGUID", + "errorIfNotAvailable": false, + "valueIfNotAvailable": "", + "contentType": "string", + "cellRenderFunction": "truncated", + "params": { + "maxLength": 16 + } + }, { "name": "Data Commons", "field": "commons", "errorIfNotAvailable": false, - "valueIfNotAvailable": "n/a", + "valueIfNotAvailable": "", "contentType": "link", "cellRenderFunction": "withURL", "params": { "hrefValueFromField": "commons_url", - "transform" : "uppercase" + "transform": "uppercase" } }, { @@ -167,71 +204,79 @@ "valueIfNotAvailable": "No description has been provided for this study." }, "simpleDetailsView": { - "showAllAvailableFields": false, + "showAllAvailableFields": true, "header": { "field": "name" }, "fieldsToShow": [ { - "groupWidth": "half", + "groupWidth": "full", "includeName": false, "fields": [ { - "name": "Unique ID", + "name": "Prometheus ID", "field": "_unique_id", "contentType": "string" }, { - "name": "Study ID", - "field": "_unique_id", + "name": "Apollo ID", + "field": "subject_apollo_id", "contentType": "string" }, { - "name": "Study/Project Name:", - "field": "short_name", - "contentType": "text", - "includeName": true, - "includeIfNotAvailable": true, - "valueIfNotAvailable": "N/A" + "name": "Year born", + "field": "subject_year_of_birth", + "renderer": "yearOfBirthRestricted" }, { - "name": "Full Name", - "field": "full_name", + "name": "Race", + "field": "subject_race", "contentType": "string" }, { - "name": "Number of Subjects", - "field": "_subjects_count", - "contentType": "string", - "includeIfNotAvailable": true + "name": "Biological Sex", + "field": "subject_gender", + "contentType": "string" }, { - "name": "Study URL", - "field": "study_url", - "contentType": "link", - "includeIfNotAvailable": true + "name": "Ethnicity", + "field": "subject_ethnicity", + "contentType": "string" }, { - "name": "Data Commons", - "field": "commons", - "contentType": "string", - "includeIfNotAvailable": true, - "params" : { - "style" : "uppercase" - } - } - ] - }, - { - "groupWidth": "half", - "fields": [ + "name": "Primary Disease", + "field": "subject_primary_disease", + "contentType": "string" + }, { - "name": "Description", - "field": "study_description", - "contentType": "paragraphs", - "includeName": true, - "includeIfNotAvailable": true, - "valueIfNotAvailable": "No description has been provided for this study." + "name": "Cancer Type", + "field": "subject_cancer_type", + "contentType": "string" + }, + { + "name": "Metastasis", + "field": "subject_metastasis", + "contentType": "string" + }, + { + "name": "Cancer Grade", + "field": "subject_cancer_grade", + "contentType": "string" + }, + { + "name": "Cancer Stage", + "field": "subject_cancer_stage", + "contentType": "string" + }, + { + "name": "Type of Exposure", + "field": "subject_type_of_exposure", + "contentType": "string" + }, + { + "name": "Chemical/agents exposed to", + "field": "subject_chemical_agents_of_exposure", + "contentType": "string" } ] } @@ -245,25 +290,54 @@ "tags": { "tagCategories": [ { - "name": "Cancer Type", + "name": "ethnicity", + "display": false + }, + { + "name": "year_of_birth", + "color": "rgba(129, 211, 248, 1)", + "display": false + }, + { + "name": "gender", + "color": "rgba(129, 211, 248, 1)", + "display": false + }, + { + "name": "race", + "color": "rgba(129, 211, 248, 1)", + "display": false + }, + { + "name": "cancer_type", "color": "rgba(129, 211, 248, 1)", "display": true }, { - "name": "Cancer Type", + "name": "cancer_grade", + "color": "rgba(129, 211, 248, 1)", + "display": true + }, + { + "name": "type_of_exposure", + "color": "rgba(129, 211, 248, 1)", + "display": true + }, + { + "name": "metastasis", "color": "rgba(129, 211, 248, 1)", "display": false }, { - "name": "Study Setting", - "color": "rgba(112, 182, 3, 1)", + "name": "primary_disease'", + "color": "rgba(129, 211, 248, 1)", "display": true } ] } }, { - "label": "Subjects", + "label": "Studies", "tableConfig": { "selectableRows": false, "expandableRows": true @@ -273,9 +347,9 @@ "dataFetchFunction": "IndexedAggMDSAllLocal", "dataFetchArgs": { "indexKeys": [ - "VPODC-subject-level-metadata", - "APOLLO-subject-level-metadata", - "BloodPAC-subject-level-metadata" + "BloodPAC-study-level-metadata", + "VPODC-study-level-metadata", + "APOLLO-study-level-metadata" ] } }, @@ -316,13 +390,11 @@ "searchBar": { "enabled": true, "searchableTextFields": [ - "subject_primary_disease", - "subject_cancer_type", - "subject_metastasis", - "subject_gender", - "subject_race", - "subject_ethnicity", - "subject_id" + "short_name", + "full_name", + "study_description", + "study_id", + "commons" ] }, "tagSearchDropdown": { @@ -365,8 +437,8 @@ }, "aggregations": [ { - "name": "Subjects", - "field": "gen3MDSGUID", + "name": "Studies", + "field": "_unique_id", "type": "count" } ], @@ -375,59 +447,40 @@ }, "studyColumns": [ { - "name": "Cancer Type", - "field": "subject_cancer_type", + "name": "Study/Project Name", + "field": "short_name", "errorIfNotAvailable": false, - "valueIfNotAvailable": "", + "valueIfNotAvailable": "n/a", + "width": "157px", "contentType": "string" }, { - "name": "Primary Disease", - "field": "subject_primary_disease", + "name": "Full Name", + "field": "full_name", "errorIfNotAvailable": false, - "valueIfNotAvailable": "", + "valueIfNotAvailable": "n/a", "contentType": "string" }, { - "name": "Metastasis", - "field": "subject_metastasis", + "name": "Number of Subjects", + "field": "_subjects_count", "errorIfNotAvailable": false, - "valueIfNotAvailable": "", + "valueIfNotAvailable": "n/a", "contentType": "number" }, - { - "name": "Biological Sex", - "field": "subject_gender", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "", - "contentType": "string" - }, - { - "name": "Race", - "field": "subject_race", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "", - "contentType": "string" - }, - { - "name": "Ethnicity", - "field": "subject_ethnicity", - "errorIfNotAvailable": false, - "valueIfNotAvailable": "", - "contentType": "string" - }, { "name": "ID Number", - "field": "subject_id", + "field": "gen3MDSGUID", "errorIfNotAvailable": false, - "valueIfNotAvailable": "", - "contentType": "string" + "valueIfNotAvailable": "n/a", + "contentType": "string", + "cellRenderFunction": "truncated" }, { "name": "Data Commons", "field": "commons", "errorIfNotAvailable": false, - "valueIfNotAvailable": "", + "valueIfNotAvailable": "n/a", "contentType": "link", "cellRenderFunction": "withURL", "params": { @@ -452,79 +505,71 @@ "valueIfNotAvailable": "No description has been provided for this study." }, "simpleDetailsView": { - "showAllAvailableFields": true, + "showAllAvailableFields": false, "header": { "field": "name" }, "fieldsToShow": [ { - "groupWidth": "full", + "groupWidth": "half", "includeName": false, "fields": [ { - "name": "Prometheus ID", + "name": "Unique ID", "field": "_unique_id", "contentType": "string" }, { - "name": "Apollo ID", - "field": "subject_apollo_id", - "contentType": "string" - }, - { - "name": "Year born", - "field": "subject_year_of_birth", - "renderer": "yearOfBirthRestricted" - }, - { - "name": "Race", - "field": "subject_race", - "contentType": "string" - }, - { - "name": "Biological Sex", - "field": "subject_gender", - "contentType": "string" - }, - { - "name": "Ethnicity", - "field": "subject_ethnicity", - "contentType": "string" - }, - { - "name": "Primary Disease", - "field": "subject_primary_disease", + "name": "Study ID", + "field": "_unique_id", "contentType": "string" }, { - "name": "Cancer Type", - "field": "subject_cancer_type", - "contentType": "string" + "name": "Study/Project Name:", + "field": "short_name", + "contentType": "text", + "includeName": true, + "includeIfNotAvailable": true, + "valueIfNotAvailable": "N/A" }, { - "name": "Metastasis", - "field": "subject_metastasis", + "name": "Full Name", + "field": "full_name", "contentType": "string" }, { - "name": "Cancer Grade", - "field": "subject_cancer_grade", - "contentType": "string" + "name": "Number of Subjects", + "field": "_subjects_count", + "contentType": "string", + "includeIfNotAvailable": true }, { - "name": "Cancer Stage", - "field": "subject_cancer_stage", - "contentType": "string" + "name": "Study URL", + "field": "study_url", + "contentType": "link", + "includeIfNotAvailable": true }, { - "name": "Type of Exposure", - "field": "subject_type_of_exposure", - "contentType": "string" - }, + "name": "Data Commons", + "field": "commons", + "contentType": "string", + "includeIfNotAvailable": true, + "params": { + "style": "uppercase" + } + } + ] + }, + { + "groupWidth": "half", + "fields": [ { - "name": "Chemical/agents exposed to", - "field": "subject_chemical_agents_of_exposure", - "contentType": "string" + "name": "Description", + "field": "study_description", + "contentType": "paragraphs", + "includeName": true, + "includeIfNotAvailable": true, + "valueIfNotAvailable": "No description has been provided for this study." } ] } @@ -538,47 +583,18 @@ "tags": { "tagCategories": [ { - "name": "ethnicity", - "display": false - }, - { - "name": "year_of_birth", - "color": "rgba(129, 211, 248, 1)", - "display": false - }, - { - "name": "gender", - "color": "rgba(129, 211, 248, 1)", - "display": false - }, - { - "name": "race", - "color": "rgba(129, 211, 248, 1)", - "display": false - }, - { - "name": "cancer_type", - "color": "rgba(129, 211, 248, 1)", - "display": true - }, - { - "name": "cancer_grade", - "color": "rgba(129, 211, 248, 1)", - "display": true - }, - { - "name": "type_of_exposure", + "name": "Cancer Type", "color": "rgba(129, 211, 248, 1)", "display": true }, { - "name": "metastasis", + "name": "Cancer Type", "color": "rgba(129, 211, 248, 1)", "display": false }, { - "name": "primary_disease'", - "color": "rgba(129, 211, 248, 1)", + "name": "Study Setting", + "color": "rgba(112, 182, 3, 1)", "display": true } ] diff --git a/package-lock.json b/package-lock.json index 9245ccc..f46da1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "prometheus-data-platform", "version": "0.10.32", "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.34.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.35.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -17,7 +17,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.34.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.35.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -50,7 +50,7 @@ "npm": ">=10.2.3" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.34.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.35.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } @@ -1843,9 +1843,9 @@ "integrity": "sha512-f7iw44q1EjBv3MNcHCGAgrW/QVyweaEouFsJzykPhTOGnZFSwFJRISToXornOmuAy7xUUGiVdqOLiykgZoYB8A==" }, "node_modules/@gen3/core": { - "version": "0.10.34", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.34.tgz", - "integrity": "sha512-it/8BGI5s352pgWYYCvCy5IytjYCK7R07HeN3IeuILgrsAoYj3ecq44OjUHCvOR0KbsUac0EoN3mh1Wq8EOovg==", + "version": "0.10.35", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.35.tgz", + "integrity": "sha512-4Gy6j2+fKoX+ALuPXvSXy4WLniyqo0XwR3COf1yAXfJ7XWFoyPSepppkzKHOI/Aj/zaOB3b9eemFGP2ULkZIvg==", "peer": true, "dependencies": { "@reduxjs/toolkit": "1.9.5", @@ -1867,9 +1867,9 @@ } }, "node_modules/@gen3/frontend": { - "version": "0.10.34", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.34.tgz", - "integrity": "sha512-/r4LhGQBPlXlyw6qwT4fJeNBrFXK3QCp4JjvwZFkOpdmkYIT0C67iVf+eJzg3WSPQaaFuMpEa9jKrrzepGT3LQ==", + "version": "0.10.35", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.35.tgz", + "integrity": "sha512-48xiomWL7odje1JBA4USbZZP0sJw5LFW1M+jkTThUsltKdWfRqqlIKyhuRmBjVPbNaeuxW0Cg91940GhMb2Pig==", "dependencies": { "@fontsource/montserrat": "^4.5.12", "@fontsource/source-sans-pro": "^4.5.11", @@ -2080,9 +2080,9 @@ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" }, "node_modules/@gen3/toolsff": { - "version": "0.10.34", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.34.tgz", - "integrity": "sha512-C66tZ+3EUgnJdbvLhBxktCsxXIx2LW0+jDgs43pbS5+6Zmt4mqtmmhd+qJqxjIIvh3/wDNozhuFJ/hRvQp0t7Q==", + "version": "0.10.35", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.35.tgz", + "integrity": "sha512-aMAMtplWDf+FsAmZvVE8wq62sHK2wNMn2iKRGg9zrUZ7ZWrziHlAmoqxQligx2lyeJWNUGRla2AbxXubrDRq1w==", "dev": true, "dependencies": { "@iconify/tools": "^2.1.2", diff --git a/package.json b/package.json index a67696e..79ccfcb 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "getDRSToHostname": "node ./node_modules/@gen3/toolsff/dist/getDRSToHostname.esm.js --out=config/" }, "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.34.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.35.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -27,7 +27,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.34.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.35.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -56,7 +56,7 @@ "@typescript-eslint/eslint-plugin": "^7.12.0" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.34.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.35.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } From fbb812b2fe714c708eca8aa9254929a227f3c557 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Wed, 24 Jul 2024 15:17:48 -0500 Subject: [PATCH 13/19] feat: add PDC (#14) --- config/gen3/discovery.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/config/gen3/discovery.json b/config/gen3/discovery.json index c2512f1..8a0261c 100644 --- a/config/gen3/discovery.json +++ b/config/gen3/discovery.json @@ -13,7 +13,8 @@ "indexKeys": [ "VPODC-subject-level-metadata", "APOLLO-subject-level-metadata", - "BloodPAC-subject-level-metadata" + "BloodPAC-subject-level-metadata", + "Proteomic-Data-Commons-subject-level-metadata" ], "hasEnoughData": { "keys": [ @@ -349,7 +350,8 @@ "indexKeys": [ "BloodPAC-study-level-metadata", "VPODC-study-level-metadata", - "APOLLO-study-level-metadata" + "APOLLO-study-level-metadata", + "Proteomic-Data-Commons-study-level-metadata" ] } }, From 83ac2f4dd91e77e11c78545157f030475bcced82 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Thu, 25 Jul 2024 09:07:44 -0500 Subject: [PATCH 14/19] feat: update crosswalk config (#15) --- config/gen3/crosswalk.json | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/config/gen3/crosswalk.json b/config/gen3/crosswalk.json index 94dee11..55043e3 100644 --- a/config/gen3/crosswalk.json +++ b/config/gen3/crosswalk.json @@ -3,14 +3,16 @@ "mapping" : { "source" : { "id": "prom", - "label": "Prometheus", + "label": "PROMETHEUS", "description" : "PROject for Military Exposures and Toxin History Evaluation in US Service Members" }, + // PROMETHEUS, GDC, PDC, BLOODPAC, dbGaP? + // / "external" : [ { - "id": "Prometheus", - "label": "Prometheus", - "dataPath": "crosswalk->subject->https://www.cancerimagingarchive.net->subject.subject_id->value" + "id": "PROMETHEUS", + "label": "PROMETHEUS", + "dataPath": "crosswalk->subject->https://prometheus.data-commons.org->case_id->value" }, { "id": "GDC", @@ -21,14 +23,23 @@ { "id": "PDC", "label": "PDC", - "dataPath": "crosswalk->subject->https://vpodc.data-commons.org->case.submitter_id->value", - "description": "Veterans Precision Oncology Data Commons® (VPOC) The Veterans Data Commons supports the management, analysis and sharing of veteran oncologic data for the research community and aims to accelerate discovery and development of therapies, diagnostic tests, and other technologies for precision oncology" + "dataPath": "crosswalk->subject->https://proteomic.datacommons.cancer.gov->case_id->value" }, { - "id": "Bloodpac", - "label": "Bloodpac", - "dataPath": "crosswalk->subject->https://www.cancerimagingarchive.net->subject.subject_id->value", - "description": "The Cancer Imaging Archive (TCIA) is a service which de-identifies and hosts a large archive of medical images of cancer accessible for public download" + "id": "BLOODPAC", + "label": "BLOODPAC", + "dataPath": "crosswalk->subject->https://data.bloodpac.org->subject.subject_id->value" + }, + { + "id": "PDC", + "label": "PDC", + "dataPath": "crosswalk->subject->https://proteomic.datacommons.cancer.gov->case_id->value", + "description": "Veterans Precision Oncology Data Commons® (VPODC) The Veterans Data Commons supports the management, analysis and sharing of veteran oncologic data for the research community and aims to accelerate discovery and development of therapies, diagnostic tests, and other technologies for precision oncology" + }, + { + "id": "dbGaP", + "label": "dbGaP", + "dataPath": "crosswalk->subject->https://www.ncbi.nlm.nih.gov->dbgap_subject_id->value" } ] } From aa3d7aacf8ef35030872c27a36b1514ca0ace68f Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Thu, 25 Jul 2024 09:22:19 -0500 Subject: [PATCH 15/19] fix: removed comments from JSON (#16) --- config/gen3/crosswalk.json | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/config/gen3/crosswalk.json b/config/gen3/crosswalk.json index 55043e3..751babe 100644 --- a/config/gen3/crosswalk.json +++ b/config/gen3/crosswalk.json @@ -1,14 +1,12 @@ { - "showSubmittedIdInTable" : false, - "mapping" : { - "source" : { + "showSubmittedIdInTable": false, + "mapping": { + "source": { "id": "prom", "label": "PROMETHEUS", - "description" : "PROject for Military Exposures and Toxin History Evaluation in US Service Members" + "description": "PROject for Military Exposures and Toxin History Evaluation in US Service Members" }, - // PROMETHEUS, GDC, PDC, BLOODPAC, dbGaP? - // / - "external" : [ + "external": [ { "id": "PROMETHEUS", "label": "PROMETHEUS", From 7031410cf26198c9eb320c62738c5e779590bed7 Mon Sep 17 00:00:00 2001 From: Andrew Prokhorenkov Date: Thu, 25 Jul 2024 09:44:56 -0500 Subject: [PATCH 16/19] Update crosswalk.json (#17) --- config/gen3/crosswalk.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/config/gen3/crosswalk.json b/config/gen3/crosswalk.json index 751babe..9363912 100644 --- a/config/gen3/crosswalk.json +++ b/config/gen3/crosswalk.json @@ -28,12 +28,6 @@ "label": "BLOODPAC", "dataPath": "crosswalk->subject->https://data.bloodpac.org->subject.subject_id->value" }, - { - "id": "PDC", - "label": "PDC", - "dataPath": "crosswalk->subject->https://proteomic.datacommons.cancer.gov->case_id->value", - "description": "Veterans Precision Oncology Data Commons® (VPODC) The Veterans Data Commons supports the management, analysis and sharing of veteran oncologic data for the research community and aims to accelerate discovery and development of therapies, diagnostic tests, and other technologies for precision oncology" - }, { "id": "dbGaP", "label": "dbGaP", From c44e33af12b8a6287bc5dacb7d7c69b5160742a1 Mon Sep 17 00:00:00 2001 From: Craig Barnes Date: Thu, 25 Jul 2024 17:02:36 -0500 Subject: [PATCH 17/19] update to 0.10.36 (#18) --- package-lock.json | 24 ++++++++++++------------ package.json | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index f46da1c..f9bb59a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "prometheus-data-platform", "version": "0.10.32", "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.35.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.36.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -17,7 +17,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.35.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.36.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -50,7 +50,7 @@ "npm": ">=10.2.3" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.35.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.36.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } @@ -1843,9 +1843,9 @@ "integrity": "sha512-f7iw44q1EjBv3MNcHCGAgrW/QVyweaEouFsJzykPhTOGnZFSwFJRISToXornOmuAy7xUUGiVdqOLiykgZoYB8A==" }, "node_modules/@gen3/core": { - "version": "0.10.35", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.35.tgz", - "integrity": "sha512-4Gy6j2+fKoX+ALuPXvSXy4WLniyqo0XwR3COf1yAXfJ7XWFoyPSepppkzKHOI/Aj/zaOB3b9eemFGP2ULkZIvg==", + "version": "0.10.36", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.36.tgz", + "integrity": "sha512-/bo05hZVUnYS/NUBjkK8tUzRrcLI9wwxm3BjTicJA6pbf4/uutYg1kIXCjwkz4eXX3AwhsxkXvMrfWmMPLWEBQ==", "peer": true, "dependencies": { "@reduxjs/toolkit": "1.9.5", @@ -1867,9 +1867,9 @@ } }, "node_modules/@gen3/frontend": { - "version": "0.10.35", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.35.tgz", - "integrity": "sha512-48xiomWL7odje1JBA4USbZZP0sJw5LFW1M+jkTThUsltKdWfRqqlIKyhuRmBjVPbNaeuxW0Cg91940GhMb2Pig==", + "version": "0.10.36", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.36.tgz", + "integrity": "sha512-lfak/nILpO7RENI5rggs8NmZBy3Zw4JMWhCP1+6POGF3yLMRtjNzwfAmegFsxsFOAlbytzfGPFdg5fg/YK1P6g==", "dependencies": { "@fontsource/montserrat": "^4.5.12", "@fontsource/source-sans-pro": "^4.5.11", @@ -2080,9 +2080,9 @@ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" }, "node_modules/@gen3/toolsff": { - "version": "0.10.35", - "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.35.tgz", - "integrity": "sha512-aMAMtplWDf+FsAmZvVE8wq62sHK2wNMn2iKRGg9zrUZ7ZWrziHlAmoqxQligx2lyeJWNUGRla2AbxXubrDRq1w==", + "version": "0.10.36", + "resolved": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.36.tgz", + "integrity": "sha512-vw88StNxRvwaeaoEacUoMgUahuuqU5Wgsw2zSXaCLjsiDShxqeZ00kDCpUSGA7+v1TppCE8gIha6g1dA/8LHeA==", "dev": true, "dependencies": { "@iconify/tools": "^2.1.2", diff --git a/package.json b/package.json index 79ccfcb..ee0c7c7 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "getDRSToHostname": "node ./node_modules/@gen3/toolsff/dist/getDRSToHostname.esm.js --out=config/" }, "dependencies": { - "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.35.tgz", + "@gen3/frontend": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-frontend-0.10.36.tgz", "@mantine/core": "^6.0.21", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", @@ -27,7 +27,7 @@ "cookies-next": "^4.1.1" }, "devDependencies": { - "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.35.tgz", + "@gen3/toolsff": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-toolsff-0.10.36.tgz", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.3", "@tailwindcss/line-clamp": "^0.4.2", @@ -56,7 +56,7 @@ "@typescript-eslint/eslint-plugin": "^7.12.0" }, "peerDependencies": { - "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.35.tgz", + "@gen3/core": "https://github.com/uc-cdis/gen3-frontend-framework/releases/download/v0.10.0-alpha/gen3-core-0.10.36.tgz", "react": "^18.2.0", "react-dom": "^18.2.0" } From dbb9fa40f2c63e0833a684c7b5dcdfbabf5585d1 Mon Sep 17 00:00:00 2001 From: smvgarcia <111767892+smvgarcia@users.noreply.github.com> Date: Tue, 20 Aug 2024 16:31:39 -0500 Subject: [PATCH 18/19] Update login.json - email (#19) Corrected and updated email address from gen3@datacommons.io to support@gen3.org --- config/gen3/login.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/gen3/login.json b/config/gen3/login.json index b753e6f..141cf68 100644 --- a/config/gen3/login.json +++ b/config/gen3/login.json @@ -11,7 +11,7 @@ ], "bottomContent": [ { - "text": "If you have any questions about access or the registration process, please contact gen3@datacommons.io.", + "text": "If you have any questions about access or the registration process, please contact support@gen3.org.", "className": "text-center text-sm" } ], From 2785aabeb522a8cbc88a64144d2129c36a5b6b74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 31 Aug 2024 03:36:16 +0000 Subject: [PATCH 19/19] Bump the npm_and_yarn group across 1 directory with 2 updates Bumps the npm_and_yarn group with 2 updates in the / directory: [braces](https://github.com/micromatch/braces) and [webpack](https://github.com/webpack/webpack). Updates `braces` from 3.0.2 to 3.0.3 - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3) Updates `webpack` from 5.90.3 to 5.94.0 - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.90.3...v5.94.0) --- updated-dependencies: - dependency-name: braces dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: webpack dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] --- package-lock.json | 157 ++++++++++++++++++++-------------------------- 1 file changed, 68 insertions(+), 89 deletions(-) diff --git a/package-lock.json b/package-lock.json index f9bb59a..b035fd0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5948,26 +5948,6 @@ "@types/trusted-types": "*" } }, - "node_modules/@types/eslint": { - "version": "8.56.4", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.4.tgz", - "integrity": "sha512-lG1GLUnL5vuRBGb3MgWUWLdGMH2Hps+pERuyQXCfWozuGKdnhf9Pbg4pkcrVUHjKrU7Rl+GCZ/299ObBXZFAxg==", - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "peer": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -6413,9 +6393,9 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", @@ -6435,9 +6415,9 @@ "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { @@ -6458,15 +6438,15 @@ "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/wasm-gen": "1.12.1" } }, "node_modules/@webassemblyjs/ieee754": { @@ -6494,28 +6474,28 @@ "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", @@ -6523,24 +6503,24 @@ } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", @@ -6549,12 +6529,12 @@ } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, @@ -6587,10 +6567,10 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "peer": true, "peerDependencies": { "acorn": "^8" @@ -7285,11 +7265,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -9065,9 +9045,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz", - "integrity": "sha512-3d3JRbwsCLJsYgvb6NuWEG44jjPSOMuS73L/6+7BZuoKm3W+qXnSoIYVHi8dG7Qcg4inAY4jbzkZ7MnskePeDg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -10414,9 +10394,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -26105,9 +26085,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -26139,26 +26119,25 @@ "dev": true }, "node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -26166,7 +26145,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": {