From 31adcbfcc05f9198d80f57cd7bf0df0d089966b7 Mon Sep 17 00:00:00 2001 From: Jorge Florentino Date: Fri, 14 Jun 2024 11:22:40 +0200 Subject: [PATCH 1/9] feat: added new joinCode config & now templates working --- views/index-local.html | 335 ++++++++++++++++++++++++++-------------- views/index.html | 339 ++++++++++++++++++++++++++--------------- 2 files changed, 438 insertions(+), 236 deletions(-) diff --git a/views/index-local.html b/views/index-local.html index d2fa9c1..753ab74 100644 --- a/views/index-local.html +++ b/views/index-local.html @@ -7,6 +7,7 @@ const queryString = window.location.search; const urlParams = new URLSearchParams(queryString); const blindCourses = ['PSG2-2021', 'ISPP-2021']; + let courseJoinCode = ''; document.addEventListener('DOMContentLoaded', (event) => { if (urlParams.get("course")) { @@ -15,25 +16,72 @@ document.getElementById('courseCode').value = urlParams.get("course"); document.getElementById('courseCode').style.display = 'none'; document.getElementById('btnGenerate').style.width = '100%'; + fetchCourseJoinCode(urlParams.get("course")); } else { document.getElementById('courseMessage').style.display = 'none'; + loadCourses(); + } + const courseCodeSelect = document.getElementById('courseCode'); + if (courseCodeSelect) { + courseCodeSelect.addEventListener('change', (event) => { + const selectedCourseId = event.target.value; + fetchCourseJoinCode(selectedCourseId); + }); + } else { + console.error('No courseCode element found'); } }); + function loadCourses() { + fetch("http://localhost:5700/api/v1/scopes/development/courses") + .then(response => response.json()) + .then(courses => { + if (!courses.scope) throw new Error("No courses found in response"); + const courseCodeSelect = document.getElementById('courseCode'); + courses.scope.forEach(classInCourse => { + if (!classInCourse.hidden) { + const option = document.createElement("option"); + option.text = classInCourse.classId; + courseCodeSelect.add(option); + } + }); + if (courses.scope.length === 1) { + fetchCourseJoinCode(courses.scope[0].classId); + } + }) + .catch(error => { + console.error('Error getting the courses:', error); + }); + } + + function fetchCourseJoinCode(courseId) { + fetch(`http://localhost:5700/api/v1/scopes/development/${courseId}`) + .then(response => response.json()) + .then(data => { + courseJoinCode = data.scope.joinCode; + }) + .catch(error => { + console.error('Error fetching course join code:', error); + }); + } let verifiedRepoURL = ''; // Check function check() { resetGeneration(); - const repoURL = document.getElementById('repoURL').value.trim(); + const repoURLInput = document.getElementById('repoURL'); + let repoURL = repoURLInput.value.trim(); if (repoURL === '') { return; } + // Remove .git extension + repoURL = repoURL.replace('.git', ''); + document.getElementById('result').innerHTML = '
Checking...'; console.log('Checking ' + repoURL + '!!'); - const data = { repoList: [repoURL]}; + const data = { repoList: [repoURL] }; fetch('http://localhost:5700/api/v1/scopes/development/check', { method: 'POST', @@ -82,14 +130,19 @@ // Generation function generate() { - const courseCode = document.getElementById('courseCode').value; + const userJoinCode = document.getElementById('userJoinCode').value.trim(); + if (userJoinCode !== courseJoinCode) { + document.getElementById('generationResult').innerHTML = '
Wrong Join Code!'; + return; + } + const courseCode = document.getElementById('courseCode').value; if (courseCode === '' || verifiedRepoURL === '') { return; } document.getElementById('generationResult').innerHTML = '
Generating, please wait...'; console.log('Generating ' + verifiedRepoURL + ' with course code ' + courseCode + '!!'); - const data = { courseId: courseCode, repoList: [verifiedRepoURL]}; + const data = { courseId: courseCode, repoList: [verifiedRepoURL] }; fetch('http://localhost:5700/api/v1/scopes/development/generate', { method: 'POST', @@ -110,90 +163,116 @@ function showGenerationResult(result, courseId) { let resultHTML = ''; - if (result.code === 200 && result.projects.length === 1) { const err = result.projects[0].errors; - console.log(err); + if (err) console.log(err); if (!err || err.length === 0) { // Generated project const projectScope = result.projects[0].newScope; - // Get template and prepare it - console.log('Register - Fetching assets TPA template...'); - fetch('http://localhost:5200/api/v1/public/renders/tpa/' + courseId + '.json') - .then(response => response.text()) + //Getting course template id + console.log('Register - Fetching course template id...'); + fetch(`http://localhost:5700/api/v1/scopes/development/${courseId}`) + .then(response => response.json()) .then(data => { - console.log('Register - TPA template obtained.'); - - const projectId = projectScope.projectId; - const tpa = JSON.parse(data.replace(/1010101010/g, projectId).replace(/2020202020/g, courseId)); - tpa.context.infrastructure.render = 'http://localhost:5100/render?model=http://localhost:5400/api/v6/agreements/' + tpa.id + '&view=/renders/tpa/default.html&ctrl=/renders/tpa/default.js'; - - // Add notifications - tpa.context.definitions.notifications = projectScope.notifications ? projectScope.notifications : {}; - - // Create TPA - fetch('http://localhost:5400/api/v6/agreements', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(tpa) - }).then(response => { - console.log('Register - Agreement created (tpa-' + projectId + ').'); - const periods = { periods: [{ from: '2021-01-18T00:00:00Z', to: new Date().toISOString() }] }; - - // Start director - fetch('http://localhost:5200/api/v1/public/director/' + courseId + '.json') - .then(response => response.text()) - .then(directorData => { - console.log('Register - TPA template obtained.'); - const directorJSON = JSON.parse(directorData); - - const directorRequest = { - id: 'tpa-' + projectId, - script: 'http://localhost:5200/api/v1/public/director/' + courseId + '.js', - running: true, - config: { - agreementId: 'tpa-' + projectId - }, - init: directorJSON.init, - end: directorJSON.end, - interval: directorJSON.interval - } - - fetch('http://localhost:5800/api/v1/tasks', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(directorRequest) - }) - .then(response =>{ - fetch('http://localhost:5800/api/v1/tasks/' + directorRequest.id + '/run', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(directorRequest) - }) - .then(()=> console.log("Successfully launched first data collect task")) - .catch(err => console.error('Error:', error)) - console.log('Register - Director is setted up and working.') + const courseTemplateId = data.scope.templateId; + //Getting template and prepare it + console.log(`Register - Fetching TPA template ${courseTemplateId} ...`); + fetch(`http://localhost:5400/api/v6/templates/${courseTemplateId}`) + .then(response => response.text()) + .then(data => { + console.log('Register - TPA template obtained.'); + const projectId = projectScope.projectId; + const tpa = JSON.parse(data.replace(/1010101010/g, projectId).replace(/2020202020/g, courseId)); + if (!tpa.context.infrastructure) {tpa.context.infrastructure = {};} + tpa.context.infrastructure.render = 'http://localhost:5100/render?model=http://localhost:5400/api/v6/agreements/' + tpa.id + '&view=/renders/tpa/default.html&ctrl=/renders/tpa/default.js'; + // Add notifications + tpa.context.definitions.notifications = projectScope.notifications ? projectScope.notifications : {}; + tpa.type = 'agreement'; + delete tpa._id; + delete tpa.id; + // We order TPA to get templateId second property + const tpaOrdered = { + id: 'tpa-' + projectId, + templateId: courseTemplateId, + ...tpa + }; + + // Create TPA + fetch('http://localhost:5400/api/v6/agreements', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(tpaOrdered) + }).then(response => { + console.log('Register - Agreement created (tpa-' + projectId + ').'); + const periods = { periods: [{ from: '2021-01-18T00:00:00Z', to: new Date().toISOString() }] }; + + // Start director + fetch('http://localhost:5200/api/v1/public/director/' + courseId + '.json') + .then(response => { + if (!response.ok) { + return response.text().then(errorMsg => { + throw new Error(errorMsg); + }); + } + return response.text(); }) - .catch((error) => { - console.error('Error:', error); + .then(directorData => { + console.log('Register - Director JSON obtained.'); + const directorJSON = JSON.parse(directorData); + // Run director + runDirectorTask(directorJSON, courseId, projectId); + }).catch(err => { + console.log("Error: Failed obtaining director.json computation info.\nURL:", 'http://localhost:5200/api/v1/public/director/' + courseId + '.json\n' + err) + console.log("Register - Fetching template.json instead ..."); + fetch('http://localhost:5200/api/v1/public/director/template.json') + .then(response => response.text()) + .then(directorData => { + console.log('Template.json director obtained'); + const directorJSON = JSON.parse(directorData); + directorJSON.interval = 3600000; + const initDate = new Date(); + directorJSON.init = initDate.toISOString().split('.')[0] + 'Z'; + const endDate = new Date(initDate); + endDate.setMonth(initDate.getMonth() + 4); + directorJSON.end = endDate.toISOString().split('.')[0] + 'Z'; + fetch('http://localhost:5200/api/v1/public/director/' + courseId + '.json', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(directorJSON) + }) + .then(response => { + if (response.ok) { + console.log("Director.json file successfully created."); + } else { + throw new Error("Failed to create director.json file."); + } + }) + .catch(err => { + console.error("Error while posting director JSON:", err); + }); + // Run director + runDirectorTask(directorJSON, courseId, projectId); + }) + .catch(err => { + console.error("Error fetching director template.json:", err); + }); }); - }).catch(err => { - console.log("Error: Failed obtaining director.json computation info.\nURL:", 'http://localhost:5200/api/v1/public/director/' + courseId + '.json\n' + err) + }).catch((error) => { + console.error('Error:', error); }); - }) - .catch((error) => { - console.error('Error:', error); + }).catch(error => { + console.error('Error fetching tpa template :', error); }); }) - .catch((error) => { - console.error('Error:', error); + .catch(error => { + console.error('Error fetching course -> template id :', error); }); + + if (blindCourses.includes(courseId)) { resultHTML = 'Congrats! Your project has successfully joined Bluejay!
'; } else { @@ -235,6 +314,53 @@ return false; } + function runDirectorTask(directorJSON, courseId, projectId){ + const directorRequest = { + id: 'tpa-' + projectId, + script: 'http://localhost:5200/api/v1/public/director/' + courseId + '.js', + running: true, + config: { + agreementId: 'tpa-' + projectId + }, + init: directorJSON.init, + end: directorJSON.end, + interval: directorJSON.interval + } + fetch('http://localhost:5800/api/v1/tasks', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(directorRequest) + }) + .then(response => { + fetch('http://localhost:5800/api/v1/tasks/' + directorRequest.id + '/run', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(directorRequest) + }).then(response => { + if (!response.ok) { + return response.text().then(error => { + throw new Error(error); + }); + } + return response.text(); + }) + .then(data => { + console.log("Successfully launched first data collect task"); + console.log('Register - Director is set up and working.'); + }) + .catch(err => { + console.error('Error during task execution:', err); + }); + }) + .catch((error) => { + console.error('Error:', error); + }); + } + // Aux function sendclick(event, btn) { if (event.keyCode === 13) { @@ -260,67 +386,42 @@ -
+

Bluejay


Welcome to the join-in page!

-
1. Please, enter you GitHub or GitLab Repository URL - containing the info.yml (.yaml not supported) file in the main branch to check it's validity.
-
- - +
1. Please, enter you GitHub or GitLab Repository URL containing the info.yml (.yaml not supported) file in the main branch to check it's validity.
+
+ +

Don't have an info.yml file? Create one now!

Already have a registered project? Get your own badge here! -
-
+
- \ No newline at end of file + + + diff --git a/views/index.html b/views/index.html index a1152cb..20b8a14 100644 --- a/views/index.html +++ b/views/index.html @@ -7,6 +7,7 @@ const queryString = window.location.search; const urlParams = new URLSearchParams(queryString); const blindCourses = ['PSG2-2021', 'ISPP-2021']; + let courseJoinCode = ''; document.addEventListener('DOMContentLoaded', (event) => { if (urlParams.get("course")) { @@ -15,25 +16,72 @@ document.getElementById('courseCode').value = urlParams.get("course"); document.getElementById('courseCode').style.display = 'none'; document.getElementById('btnGenerate').style.width = '100%'; + fetchCourseJoinCode(urlParams.get("course")); } else { document.getElementById('courseMessage').style.display = 'none'; + loadCourses(); + } + const courseCodeSelect = document.getElementById('courseCode'); + if (courseCodeSelect) { + courseCodeSelect.addEventListener('change', (event) => { + const selectedCourseId = event.target.value; + fetchCourseJoinCode(selectedCourseId); + }); + } else { + console.error('No courseCode element found'); } }); + function loadCourses() { + fetch("https://scopes.bluejay.governify.io/api/v1/scopes/development/courses") + .then(response => response.json()) + .then(courses => { + if (!courses.scope) throw new Error("No courses found in response"); + const courseCodeSelect = document.getElementById('courseCode'); + courses.scope.forEach(classInCourse => { + if (!classInCourse.hidden) { + const option = document.createElement("option"); + option.text = classInCourse.classId; + courseCodeSelect.add(option); + } + }); + if (courses.scope.length === 1) { + fetchCourseJoinCode(courses.scope[0].classId); + } + }) + .catch(error => { + console.error('Error getting the courses:', error); + }); + } + + function fetchCourseJoinCode(courseId) { + fetch(`https://scopes.bluejay.governify.io/api/v1/scopes/development/${courseId}`) + .then(response => response.json()) + .then(data => { + courseJoinCode = data.scope.joinCode; + }) + .catch(error => { + console.error('Error fetching course join code:', error); + }); + } let verifiedRepoURL = ''; // Check function check() { resetGeneration(); - const repoURL = document.getElementById('repoURL').value.trim(); + const repoURLInput = document.getElementById('repoURL'); + let repoURL = repoURLInput.value.trim(); if (repoURL === '') { return; } + // Remove .git extension + repoURL = repoURL.replace('.git', ''); + document.getElementById('result').innerHTML = '
Checking...'; console.log('Checking ' + repoURL + '!!'); - const data = { repoList: [repoURL]}; + const data = { repoList: [repoURL] }; fetch('https://scopes.bluejay.governify.io/api/v1/scopes/development/check', { method: 'POST', @@ -82,14 +130,19 @@ // Generation function generate() { - const courseCode = document.getElementById('courseCode').value; + const userJoinCode = document.getElementById('userJoinCode').value.trim(); + if (userJoinCode !== courseJoinCode) { + document.getElementById('generationResult').innerHTML = '
Wrong Join Code!'; + return; + } + const courseCode = document.getElementById('courseCode').value; if (courseCode === '' || verifiedRepoURL === '') { return; } document.getElementById('generationResult').innerHTML = '
Generating, please wait...'; console.log('Generating ' + verifiedRepoURL + ' with course code ' + courseCode + '!!'); - const data = { courseId: courseCode, repoList: [verifiedRepoURL]}; + const data = { courseId: courseCode, repoList: [verifiedRepoURL] }; fetch('https://scopes.bluejay.governify.io/api/v1/scopes/development/generate', { method: 'POST', @@ -110,94 +163,120 @@ function showGenerationResult(result, courseId) { let resultHTML = ''; - if (result.code === 200 && result.projects.length === 1) { const err = result.projects[0].errors; - console.log(err); + if (err) console.log(err); if (!err || err.length === 0) { // Generated project const projectScope = result.projects[0].newScope; - // Get template and prepare it - console.log('Register - Fetching assets TPA template...'); - fetch('https://assets.bluejay.governify.io/api/v1/public/renders/tpa/' + courseId + '.json') - .then(response => response.text()) + //Getting course template id + console.log('Register - Fetching course template id...'); + fetch(`https://scopes.bluejay.governify.io/api/v1/scopes/development/${courseId}`) + .then(response => response.json()) .then(data => { - console.log('Register - TPA template obtained.'); - - const projectId = projectScope.projectId; - const tpa = JSON.parse(data.replace(/1010101010/g, projectId).replace(/2020202020/g, courseId)); - tpa.context.infrastructure.render = 'https://ui.bluejay.governify.io/render?model=https://registry.bluejay.governify.io/api/v6/agreements/' + tpa.id + '&view=/renders/tpa/default.html&ctrl=/renders/tpa/default.js'; - - // Add notifications - tpa.context.definitions.notifications = projectScope.notifications ? projectScope.notifications : {}; - - // Create TPA - fetch('https://registry.bluejay.governify.io/api/v6/agreements', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(tpa) - }).then(response => { - console.log('Register - Agreement created (tpa-' + projectId + ').'); - const periods = { periods: [{ from: '2021-01-18T00:00:00Z', to: new Date().toISOString() }] }; - - // Start director - fetch('https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.json') - .then(response => response.text()) - .then(directorData => { - console.log('Register - TPA template obtained.'); - const directorJSON = JSON.parse(directorData); - - const directorRequest = { - id: 'tpa-' + projectId, - script: 'http://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.js', - running: true, - config: { - agreementId: 'tpa-' + projectId - }, - init: directorJSON.init, - end: directorJSON.end, - interval: directorJSON.interval - } - - fetch('https://director.bluejay.governify.io/api/v1/tasks', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(directorRequest) - }) - .then(response =>{ - fetch('https://director.bluejay.governify.io/api/v1/tasks/' + directorRequest.id + '/run', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(directorRequest) - }) - .then(()=> console.log("Successfully launched first data collect task")) - .catch(err => console.error('Error:', error)) - console.log('Register - Director is setted up and working.') + const courseTemplateId = data.scope.templateId; + //Getting template and prepare it + console.log(`Register - Fetching TPA template ${courseTemplateId} ...`); + fetch(`https://registry.bluejay.governify.io/api/v6/templates/${courseTemplateId}`) + .then(response => response.text()) + .then(data => { + console.log('Register - TPA template obtained.'); + const projectId = projectScope.projectId; + const tpa = JSON.parse(data.replace(/1010101010/g, projectId).replace(/2020202020/g, courseId)); + if (!tpa.context.infrastructure) {tpa.context.infrastructure = {};} + tpa.context.infrastructure.render = 'https://ui.bluejay.governify.io/render?model=https://registry.bluejay.governify.io/api/v6/agreements/' + tpa.id + '&view=/renders/tpa/default.html&ctrl=/renders/tpa/default.js'; + // Add notifications + tpa.context.definitions.notifications = projectScope.notifications ? projectScope.notifications : {}; + tpa.type = 'agreement'; + delete tpa._id; + delete tpa.id; + // We order TPA to get templateId second property + const tpaOrdered = { + id: 'tpa-' + projectId, + templateId: courseTemplateId, + ...tpa + }; + + // Create TPA + fetch('https://registry.bluejay.governify.io/api/v6/agreements', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(tpaOrdered) + }).then(response => { + console.log('Register - Agreement created (tpa-' + projectId + ').'); + const periods = { periods: [{ from: '2021-01-18T00:00:00Z', to: new Date().toISOString() }] }; + + // Start director + fetch('https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.json') + .then(response => { + if (!response.ok) { + return response.text().then(errorMsg => { + throw new Error(errorMsg); + }); + } + return response.text(); }) - .catch((error) => { - console.error('Error:', error); + .then(directorData => { + console.log('Register - Director JSON obtained.'); + const directorJSON = JSON.parse(directorData); + // Run director + runDirectorTask(directorJSON, courseId, projectId); + }).catch(err => { + console.log("Error: Failed obtaining director.json computation info.\nURL:", 'https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.json\n' + err) + console.log("Register - Fetching template.json instead ..."); + fetch('https://assets.bluejay.governify.io/api/v1/public/director/template.json') + .then(response => response.text()) + .then(directorData => { + console.log('Template.json director obtained'); + const directorJSON = JSON.parse(directorData); + directorJSON.interval = 3600000; + const initDate = new Date(); + directorJSON.init = initDate.toISOString().split('.')[0] + 'Z'; + const endDate = new Date(initDate); + endDate.setMonth(initDate.getMonth() + 4); + directorJSON.end = endDate.toISOString().split('.')[0] + 'Z'; + fetch('https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.json', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(directorJSON) + }) + .then(response => { + if (response.ok) { + console.log("Director.json file successfully created."); + } else { + throw new Error("Failed to create director.json file."); + } + }) + .catch(err => { + console.error("Error while posting director JSON:", err); + }); + // Run director + runDirectorTask(directorJSON, courseId, projectId); + }) + .catch(err => { + console.error("Error fetching director template.json:", err); + }); }); - }).catch(err => { - console.log("Error: Failed obtaining director.json computation info.\nURL:", 'https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.json\n' + err) + }).catch((error) => { + console.error('Error:', error); }); - }) - .catch((error) => { - console.error('Error:', error); + }).catch(error => { + console.error('Error fetching tpa template :', error); }); }) - .catch((error) => { - console.error('Error:', error); + .catch(error => { + console.error('Error fetching course -> template id :', error); }); + + if (blindCourses.includes(courseId)) { resultHTML = 'Congrats! Your project has successfully joined Bluejay!
'; } else { - var dashboardURL = 'http://dashboard.bluejay.governify.io/dashboard/script/dashboardLoader.js?dashboardURL=https://reporter.bluejay.governify.io/api/v4/dashboards/tpa-' + projectScope.projectId + '/main'; + var dashboardURL = 'https://dashboard.bluejay.governify.io/dashboard/script/dashboardLoader.js?dashboardURL=http://localhost:5300/api/v4/dashboards/tpa-' + projectScope.projectId + '/main'; resultHTML = 'Congrats! Your project dashboard has been created!
'; resultHTML += 'If this is an empty repo, no data will be shown at the moment. As you start working on it (with P/R, Commit, stories, etc.) the analysis will begin and you can access the dashboard by clicking on the following badge (credentials: user/bluejay)
'; resultHTML += "
If you want to add the badge to your repo's README.md you can copy the following markdown:
[![Bluejay Dashboard](https://img.shields.io/badge/Bluejay-Dashboard_" + projectScope.teamId + '-blue.svg)](' + dashboardURL + ')'; @@ -207,7 +286,7 @@ if (blindCourses.includes(courseId)) { resultHTML = 'Your project had already properly joined to bluejay!
'; } else { - var dashboardURL = 'http://dashboard.bluejay.governify.io/dashboard/script/dashboardLoader.js?dashboardURL=https://reporter.bluejay.governify.io/api/v4/dashboards/tpa-' + projectScope.projectId + '/main'; + var dashboardURL = 'https://dashboard.bluejay.governify.io/dashboard/script/dashboardLoader.js?dashboardURL=http://localhost:5300/api/v4/dashboards/tpa-' + projectScope.projectId + '/main'; resultHTML = 'Your project is already registered and there are no changes to your info.yml!
'; resultHTML += 'If you want to access the dashboard click on the following badge (credentials: user/bluejay)
'; resultHTML += "
If you want to add the badge to your repo's README.md you can copy the following markdown:
[![Bluejay Dashboard](https://img.shields.io/badge/Bluejay-Dashboard_" + projectScope.teamId + '-blue.svg)](' + dashboardURL + ')'; @@ -235,6 +314,53 @@ return false; } + function runDirectorTask(directorJSON, courseId, projectId){ + const directorRequest = { + id: 'tpa-' + projectId, + script: 'https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.js', + running: true, + config: { + agreementId: 'tpa-' + projectId + }, + init: directorJSON.init, + end: directorJSON.end, + interval: directorJSON.interval + } + fetch('http://localhost:5800/api/v1/tasks', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(directorRequest) + }) + .then(response => { + fetch('http://localhost:5800/api/v1/tasks/' + directorRequest.id + '/run', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(directorRequest) + }).then(response => { + if (!response.ok) { + return response.text().then(error => { + throw new Error(error); + }); + } + return response.text(); + }) + .then(data => { + console.log("Successfully launched first data collect task"); + console.log('Register - Director is set up and working.'); + }) + .catch(err => { + console.error('Error during task execution:', err); + }); + }) + .catch((error) => { + console.error('Error:', error); + }); + } + // Aux function sendclick(event, btn) { if (event.keyCode === 13) { @@ -260,67 +386,42 @@ -
+

Bluejay


Welcome to the join-in page!

-
1. Please, enter you GitHub or GitLab Repository URL - containing the info.yml (.yaml not supported) file in the main branch to check it's validity.
-
- - +
1. Please, enter you GitHub or GitLab Repository URL containing the info.yml (.yaml not supported) file in the main branch to check it's validity.
+
+ +

Don't have an info.yml file? Create one now!

Already have a registered project? Get your own badge here! -
-
+
- \ No newline at end of file + + + From 96455f86e5e8a0e2508b723009becf7e1167b410 Mon Sep 17 00:00:00 2001 From: Jorge Florentino Date: Tue, 25 Jun 2024 12:42:39 +0200 Subject: [PATCH 2/9] fix: fixed joinCode logic & urls on index.html --- views/index-local.html | 115 ++++++++++++++++++------------------- views/index.html | 125 +++++++++++++++++++---------------------- 2 files changed, 113 insertions(+), 127 deletions(-) diff --git a/views/index-local.html b/views/index-local.html index 753ab74..ae56947 100644 --- a/views/index-local.html +++ b/views/index-local.html @@ -1,3 +1,4 @@ + @@ -16,20 +17,10 @@ document.getElementById('courseCode').value = urlParams.get("course"); document.getElementById('courseCode').style.display = 'none'; document.getElementById('btnGenerate').style.width = '100%'; - fetchCourseJoinCode(urlParams.get("course")); } else { document.getElementById('courseMessage').style.display = 'none'; loadCourses(); } - const courseCodeSelect = document.getElementById('courseCode'); - if (courseCodeSelect) { - courseCodeSelect.addEventListener('change', (event) => { - const selectedCourseId = event.target.value; - fetchCourseJoinCode(selectedCourseId); - }); - } else { - console.error('No courseCode element found'); - } }); function loadCourses() { @@ -45,9 +36,6 @@ courseCodeSelect.add(option); } }); - if (courses.scope.length === 1) { - fetchCourseJoinCode(courses.scope[0].classId); - } }) .catch(error => { console.error('Error getting the courses:', error); @@ -55,10 +43,12 @@ } function fetchCourseJoinCode(courseId) { - fetch(`http://localhost:5700/api/v1/scopes/development/${courseId}`) + console.log('Fetching course join code for ' + courseId); + return fetch(`http://localhost:5700/api/v1/scopes/development/${courseId}`) .then(response => response.json()) .then(data => { courseJoinCode = data.scope.joinCode; + return courseJoinCode; }) .catch(error => { console.error('Error fetching course join code:', error); @@ -66,6 +56,7 @@ } let verifiedRepoURL = ''; + // Check function check() { resetGeneration(); @@ -131,34 +122,36 @@ // Generation function generate() { const userJoinCode = document.getElementById('userJoinCode').value.trim(); - if (userJoinCode !== courseJoinCode) { - document.getElementById('generationResult').innerHTML = '
Wrong Join Code!'; - return; - } - const courseCode = document.getElementById('courseCode').value; if (courseCode === '' || verifiedRepoURL === '') { return; } - document.getElementById('generationResult').innerHTML = '
Generating, please wait...'; - console.log('Generating ' + verifiedRepoURL + ' with course code ' + courseCode + '!!'); + fetchCourseJoinCode(courseCode).then(fetchedJoinCode => { + if (userJoinCode !== fetchedJoinCode) { + document.getElementById('generationResult').innerHTML = '
Wrong Join Code!'; + return; + } - const data = { courseId: courseCode, repoList: [verifiedRepoURL] }; + document.getElementById('generationResult').innerHTML = '
Generating, please wait...'; + console.log('Generating ' + verifiedRepoURL + ' with course code ' + courseCode + '!!'); - fetch('http://localhost:5700/api/v1/scopes/development/generate', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(data) - }) - .then(response => response.json()) - .then(data => { - showGenerationResult(data, courseCode); + const data = { courseId: courseCode, repoList: [verifiedRepoURL] }; + + fetch('http://localhost:5700/api/v1/scopes/development/generate', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) }) - .catch((error) => { - console.error('Error:', error); - showGenerationResult(error); - }); + .then(response => response.json()) + .then(data => { + showGenerationResult(data, courseCode); + }) + .catch((error) => { + console.error('Error:', error); + showGenerationResult(error); + }); + }); } function showGenerationResult(result, courseId) { @@ -183,7 +176,7 @@ console.log('Register - TPA template obtained.'); const projectId = projectScope.projectId; const tpa = JSON.parse(data.replace(/1010101010/g, projectId).replace(/2020202020/g, courseId)); - if (!tpa.context.infrastructure) {tpa.context.infrastructure = {};} + if (!tpa.context.infrastructure) { tpa.context.infrastructure = {}; } tpa.context.infrastructure.render = 'http://localhost:5100/render?model=http://localhost:5400/api/v6/agreements/' + tpa.id + '&view=/renders/tpa/default.html&ctrl=/renders/tpa/default.js'; // Add notifications tpa.context.definitions.notifications = projectScope.notifications ? projectScope.notifications : {}; @@ -196,7 +189,7 @@ templateId: courseTemplateId, ...tpa }; - + // Create TPA fetch('http://localhost:5400/api/v6/agreements', { method: 'POST', @@ -215,7 +208,7 @@ return response.text().then(errorMsg => { throw new Error(errorMsg); }); - } + } return response.text(); }) .then(directorData => { @@ -237,23 +230,23 @@ const endDate = new Date(initDate); endDate.setMonth(initDate.getMonth() + 4); directorJSON.end = endDate.toISOString().split('.')[0] + 'Z'; - fetch('http://localhost:5200/api/v1/public/director/' + courseId + '.json', { + fetch('http://localhost:5200/api/v1/public/director/' + courseId + '.json', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(directorJSON) }) - .then(response => { - if (response.ok) { - console.log("Director.json file successfully created."); - } else { - throw new Error("Failed to create director.json file."); - } - }) - .catch(err => { - console.error("Error while posting director JSON:", err); - }); + .then(response => { + if (response.ok) { + console.log("Director.json file successfully created."); + } else { + throw new Error("Failed to create director.json file."); + } + }) + .catch(err => { + console.error("Error while posting director JSON:", err); + }); // Run director runDirectorTask(directorJSON, courseId, projectId); }) @@ -271,8 +264,8 @@ .catch(error => { console.error('Error fetching course -> template id :', error); }); - - + + if (blindCourses.includes(courseId)) { resultHTML = 'Congrats! Your project has successfully joined Bluejay!
'; } else { @@ -314,7 +307,7 @@ return false; } - function runDirectorTask(directorJSON, courseId, projectId){ + function runDirectorTask(directorJSON, courseId, projectId) { const directorRequest = { id: 'tpa-' + projectId, script: 'http://localhost:5200/api/v1/public/director/' + courseId + '.js', @@ -346,15 +339,15 @@ throw new Error(error); }); } - return response.text(); - }) - .then(data => { - console.log("Successfully launched first data collect task"); - console.log('Register - Director is set up and working.'); + return response.text(); }) - .catch(err => { - console.error('Error during task execution:', err); - }); + .then(data => { + console.log("Successfully launched first data collect task"); + console.log('Register - Director is set up and working.'); + }) + .catch(err => { + console.error('Error during task execution:', err); + }); }) .catch((error) => { console.error('Error:', error); diff --git a/views/index.html b/views/index.html index 20b8a14..19970ba 100644 --- a/views/index.html +++ b/views/index.html @@ -1,3 +1,4 @@ + @@ -16,20 +17,10 @@ document.getElementById('courseCode').value = urlParams.get("course"); document.getElementById('courseCode').style.display = 'none'; document.getElementById('btnGenerate').style.width = '100%'; - fetchCourseJoinCode(urlParams.get("course")); } else { document.getElementById('courseMessage').style.display = 'none'; loadCourses(); } - const courseCodeSelect = document.getElementById('courseCode'); - if (courseCodeSelect) { - courseCodeSelect.addEventListener('change', (event) => { - const selectedCourseId = event.target.value; - fetchCourseJoinCode(selectedCourseId); - }); - } else { - console.error('No courseCode element found'); - } }); function loadCourses() { @@ -45,9 +36,6 @@ courseCodeSelect.add(option); } }); - if (courses.scope.length === 1) { - fetchCourseJoinCode(courses.scope[0].classId); - } }) .catch(error => { console.error('Error getting the courses:', error); @@ -55,10 +43,12 @@ } function fetchCourseJoinCode(courseId) { - fetch(`https://scopes.bluejay.governify.io/api/v1/scopes/development/${courseId}`) + console.log('Fetching course join code for ' + courseId); + return fetch(`https://scopes.bluejay.governify.io/api/v1/scopes/development/${courseId}`) .then(response => response.json()) .then(data => { courseJoinCode = data.scope.joinCode; + return courseJoinCode; }) .catch(error => { console.error('Error fetching course join code:', error); @@ -66,6 +56,7 @@ } let verifiedRepoURL = ''; + // Check function check() { resetGeneration(); @@ -131,34 +122,36 @@ // Generation function generate() { const userJoinCode = document.getElementById('userJoinCode').value.trim(); - if (userJoinCode !== courseJoinCode) { - document.getElementById('generationResult').innerHTML = '
Wrong Join Code!'; - return; - } - const courseCode = document.getElementById('courseCode').value; if (courseCode === '' || verifiedRepoURL === '') { return; } - document.getElementById('generationResult').innerHTML = '
Generating, please wait...'; - console.log('Generating ' + verifiedRepoURL + ' with course code ' + courseCode + '!!'); + fetchCourseJoinCode(courseCode).then(fetchedJoinCode => { + if (userJoinCode !== fetchedJoinCode) { + document.getElementById('generationResult').innerHTML = '
Wrong Join Code!'; + return; + } - const data = { courseId: courseCode, repoList: [verifiedRepoURL] }; + document.getElementById('generationResult').innerHTML = '
Generating, please wait...'; + console.log('Generating ' + verifiedRepoURL + ' with course code ' + courseCode + '!!'); - fetch('https://scopes.bluejay.governify.io/api/v1/scopes/development/generate', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(data) - }) - .then(response => response.json()) - .then(data => { - showGenerationResult(data, courseCode); + const data = { courseId: courseCode, repoList: [verifiedRepoURL] }; + + fetch('https://scopes.bluejay.governify.io/api/v1/scopes/development/generate', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) }) - .catch((error) => { - console.error('Error:', error); - showGenerationResult(error); - }); + .then(response => response.json()) + .then(data => { + showGenerationResult(data, courseCode); + }) + .catch((error) => { + console.error('Error:', error); + showGenerationResult(error); + }); + }); } function showGenerationResult(result, courseId) { @@ -183,7 +176,7 @@ console.log('Register - TPA template obtained.'); const projectId = projectScope.projectId; const tpa = JSON.parse(data.replace(/1010101010/g, projectId).replace(/2020202020/g, courseId)); - if (!tpa.context.infrastructure) {tpa.context.infrastructure = {};} + if (!tpa.context.infrastructure) { tpa.context.infrastructure = {}; } tpa.context.infrastructure.render = 'https://ui.bluejay.governify.io/render?model=https://registry.bluejay.governify.io/api/v6/agreements/' + tpa.id + '&view=/renders/tpa/default.html&ctrl=/renders/tpa/default.js'; // Add notifications tpa.context.definitions.notifications = projectScope.notifications ? projectScope.notifications : {}; @@ -196,7 +189,7 @@ templateId: courseTemplateId, ...tpa }; - + // Create TPA fetch('https://registry.bluejay.governify.io/api/v6/agreements', { method: 'POST', @@ -215,7 +208,7 @@ return response.text().then(errorMsg => { throw new Error(errorMsg); }); - } + } return response.text(); }) .then(directorData => { @@ -224,7 +217,7 @@ // Run director runDirectorTask(directorJSON, courseId, projectId); }).catch(err => { - console.log("Error: Failed obtaining director.json computation info.\nURL:", 'https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.json\n' + err) + console.log("Error: Failed obtaining director.json computation info.\nURL:", 'http://localhost:5200/api/v1/public/director/' + courseId + '.json\n' + err) console.log("Register - Fetching template.json instead ..."); fetch('https://assets.bluejay.governify.io/api/v1/public/director/template.json') .then(response => response.text()) @@ -237,23 +230,23 @@ const endDate = new Date(initDate); endDate.setMonth(initDate.getMonth() + 4); directorJSON.end = endDate.toISOString().split('.')[0] + 'Z'; - fetch('https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.json', { + fetch('https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.json', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(directorJSON) }) - .then(response => { - if (response.ok) { - console.log("Director.json file successfully created."); - } else { - throw new Error("Failed to create director.json file."); - } - }) - .catch(err => { - console.error("Error while posting director JSON:", err); - }); + .then(response => { + if (response.ok) { + console.log("Director.json file successfully created."); + } else { + throw new Error("Failed to create director.json file."); + } + }) + .catch(err => { + console.error("Error while posting director JSON:", err); + }); // Run director runDirectorTask(directorJSON, courseId, projectId); }) @@ -271,12 +264,12 @@ .catch(error => { console.error('Error fetching course -> template id :', error); }); - - + + if (blindCourses.includes(courseId)) { resultHTML = 'Congrats! Your project has successfully joined Bluejay!
'; } else { - var dashboardURL = 'https://dashboard.bluejay.governify.io/dashboard/script/dashboardLoader.js?dashboardURL=http://localhost:5300/api/v4/dashboards/tpa-' + projectScope.projectId + '/main'; + var dashboardURL = 'https://dashboard.bluejay.governify.io/dashboard/script/dashboardLoader.js?dashboardURL=https://reporter.bluejay.governify.io/api/v4/dashboards/tpa-' + projectScope.projectId + '/main'; resultHTML = 'Congrats! Your project dashboard has been created!
'; resultHTML += 'If this is an empty repo, no data will be shown at the moment. As you start working on it (with P/R, Commit, stories, etc.) the analysis will begin and you can access the dashboard by clicking on the following badge (credentials: user/bluejay)
'; resultHTML += "
If you want to add the badge to your repo's README.md you can copy the following markdown:
[![Bluejay Dashboard](https://img.shields.io/badge/Bluejay-Dashboard_" + projectScope.teamId + '-blue.svg)](' + dashboardURL + ')'; @@ -286,7 +279,7 @@ if (blindCourses.includes(courseId)) { resultHTML = 'Your project had already properly joined to bluejay!
'; } else { - var dashboardURL = 'https://dashboard.bluejay.governify.io/dashboard/script/dashboardLoader.js?dashboardURL=http://localhost:5300/api/v4/dashboards/tpa-' + projectScope.projectId + '/main'; + var dashboardURL = 'https://dashboard.bluejay.governify.io/dashboard/script/dashboardLoader.js?dashboardURL=https://reporter.bluejay.governify.io/api/v4/dashboards/tpa-' + projectScope.projectId + '/main'; resultHTML = 'Your project is already registered and there are no changes to your info.yml!
'; resultHTML += 'If you want to access the dashboard click on the following badge (credentials: user/bluejay)
'; resultHTML += "
If you want to add the badge to your repo's README.md you can copy the following markdown:
[![Bluejay Dashboard](https://img.shields.io/badge/Bluejay-Dashboard_" + projectScope.teamId + '-blue.svg)](' + dashboardURL + ')'; @@ -314,7 +307,7 @@ return false; } - function runDirectorTask(directorJSON, courseId, projectId){ + function runDirectorTask(directorJSON, courseId, projectId) { const directorRequest = { id: 'tpa-' + projectId, script: 'https://assets.bluejay.governify.io/api/v1/public/director/' + courseId + '.js', @@ -326,7 +319,7 @@ end: directorJSON.end, interval: directorJSON.interval } - fetch('http://localhost:5800/api/v1/tasks', { + fetch('https://director.bluejay.governify.io/api/v1/tasks', { method: 'POST', headers: { 'Content-Type': 'application/json' @@ -334,7 +327,7 @@ body: JSON.stringify(directorRequest) }) .then(response => { - fetch('http://localhost:5800/api/v1/tasks/' + directorRequest.id + '/run', { + fetch('https://director.bluejay.governify.io/api/v1/tasks/' + directorRequest.id + '/run', { method: 'POST', headers: { 'Content-Type': 'application/json' @@ -346,15 +339,15 @@ throw new Error(error); }); } - return response.text(); - }) - .then(data => { - console.log("Successfully launched first data collect task"); - console.log('Register - Director is set up and working.'); + return response.text(); }) - .catch(err => { - console.error('Error during task execution:', err); - }); + .then(data => { + console.log("Successfully launched first data collect task"); + console.log('Register - Director is set up and working.'); + }) + .catch(err => { + console.error('Error during task execution:', err); + }); }) .catch((error) => { console.error('Error:', error); From 9c684c4e026394f3886797a171b4190790abf273 Mon Sep 17 00:00:00 2001 From: JaviFdez7 Date: Thu, 30 Jan 2025 20:50:30 +0100 Subject: [PATCH 3/9] feat: migration to React with Vite --- .dockerignore | 7 +- .env.example | 16 +- .gitignore | 26 +- Dockerfile | 31 +- README.md | 33 +- components.json | 21 + config.app.json | 10 + eslint.config.js | 38 + index.html | 13 + index.js | 59 - jsconfig.json | 8 + nginx.conf | 20 + package-lock.json | 9895 +++++++++++++++++---- package.json | 78 +- postcss.config.js | 6 + public/logo.png | Bin 0 -> 120101 bytes public/logohighquality.png | Bin 0 -> 24395 bytes src/assets/react.svg | 1 + src/components/App.jsx | 19 + src/components/DashboardBadge.jsx | 26 + src/components/JoinView.jsx | 451 + src/components/Navbar.jsx | 36 + src/components/ViewWrapper.jsx | 14 + src/components/WizardView.jsx | 431 + src/components/ui/alert.jsx | 47 + src/components/ui/button.jsx | 48 + src/components/ui/card.jsx | 50 + src/components/ui/checkbox.jsx | 22 + src/components/ui/dialog.jsx | 94 + src/components/ui/input.jsx | 19 + src/components/ui/label.jsx | 16 + src/components/ui/select.jsx | 119 + src/components/ui/tabs.jsx | 41 + src/config.js | 13 + src/index.css | 66 + src/lib/utils.js | 6 + src/main.jsx | 10 + {views => src/oldViews}/badge.html | 0 {views => src/oldViews}/checker.html | 0 {views => src/oldViews}/index-local.html | 0 {views => src/oldViews}/index.html | 0 {views => src/oldViews}/wizard-local.html | 0 {views => src/oldViews}/wizard.html | 0 tailwind.config.js | 82 + vite.config.js | 24 + 45 files changed, 10008 insertions(+), 1888 deletions(-) create mode 100644 components.json create mode 100644 config.app.json create mode 100644 eslint.config.js create mode 100644 index.html delete mode 100644 index.js create mode 100644 jsconfig.json create mode 100644 nginx.conf create mode 100644 postcss.config.js create mode 100644 public/logo.png create mode 100644 public/logohighquality.png create mode 100644 src/assets/react.svg create mode 100644 src/components/App.jsx create mode 100644 src/components/DashboardBadge.jsx create mode 100644 src/components/JoinView.jsx create mode 100644 src/components/Navbar.jsx create mode 100644 src/components/ViewWrapper.jsx create mode 100644 src/components/WizardView.jsx create mode 100644 src/components/ui/alert.jsx create mode 100644 src/components/ui/button.jsx create mode 100644 src/components/ui/card.jsx create mode 100644 src/components/ui/checkbox.jsx create mode 100644 src/components/ui/dialog.jsx create mode 100644 src/components/ui/input.jsx create mode 100644 src/components/ui/label.jsx create mode 100644 src/components/ui/select.jsx create mode 100644 src/components/ui/tabs.jsx create mode 100644 src/config.js create mode 100644 src/index.css create mode 100644 src/lib/utils.js create mode 100644 src/main.jsx rename {views => src/oldViews}/badge.html (100%) rename {views => src/oldViews}/checker.html (100%) rename {views => src/oldViews}/index-local.html (100%) rename {views => src/oldViews}/index.html (100%) rename {views => src/oldViews}/wizard-local.html (100%) rename {views => src/oldViews}/wizard.html (100%) create mode 100644 tailwind.config.js create mode 100644 vite.config.js diff --git a/.dockerignore b/.dockerignore index b512c09..6f47f38 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1 +1,6 @@ -node_modules \ No newline at end of file +node_modules +npm-debug.log +.env +.DS_Store +.git +.gitignore diff --git a/.env.example b/.env.example index 5da30c1..d2716fc 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,10 @@ -NODE_ENV=development -PORT=null -PRIVATE_KEY=null -KEY_GITHUB=null -NEW_RELIC_APP_NAME=null -NEW_RELIC_LICENSE_KEY=null \ No newline at end of file +PORT=6001 +VITE_SCOPE_URL=http://localhost:5700 +VITE_REGISTRY_URL=http://localhost:5400 +VITE_INTERNAL_ASSETS_URL=http://host.docker.internal:5200 +VITE_INTERNAL_SCOPE_URL=http://host.docker.internal:5700 +VITE_RENDER_URL=http://localhost:5100 +VITE_DASHBOARD_URL=http://localhost:5600 +VITE_REPORTER_URL=http://localhost:5300 +VITE_DIRECTOR_URL=http://localhost:5800 +VITE_ASSETS_URL=http://localhost:5200 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1dcef2d..50c8dda 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + node_modules -.env \ No newline at end of file +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +.env diff --git a/Dockerfile b/Dockerfile index 48d47f1..d780331 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,14 @@ -FROM governify/base-node-14:1.0 - +# Stage 1: Build the React application +FROM node:20-alpine AS build +WORKDIR /app +COPY package*.json ./ +RUN npm install COPY . . -RUN npm install --only=prod - -ARG NODE_ENV=production -ENV NODE_ENV $NODE_ENV - -# New Relic config -RUN apk add python -ENV NEW_RELIC_NO_CONFIG_FILE=true -ENV NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=true -ENV NEW_RELIC_LOG=stdout - -ARG PORT=80 -ENV PORT $PORT -EXPOSE $PORT - -CMD [ "node", "index.js" ] \ No newline at end of file +RUN npm run build + +# Stage 2: Serve the React application using Nginx +FROM nginx:alpine +COPY --from=build /app/dist /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] diff --git a/README.md b/README.md index 6b5e17e..5104300 100644 --- a/README.md +++ b/README.md @@ -1 +1,32 @@ -# join-bluejay \ No newline at end of file +# join-bluejay + +## Project Overview +JoinBluejay allows adding GitHub projects to the Scope Manager through an interface. This enables different teams to register in the system autonomously. + +## Development Quick Start + +### Configuration +Before installing dependencies, configure the environment variables. Copy the `.env.example` file to `.env`: + +```bash +cp .env.example .env +``` + +### Installation +To get started with the project, first install the necessary dependencies: + +```bash +npm install +``` + +### Running the Project +After installing the dependencies, you can run the project using the following command: + +```bash +npm run dev +``` + +This will start the development server and you can view the project in your browser. + +## License +This project is licensed under the MIT License. \ No newline at end of file diff --git a/components.json b/components.json new file mode 100644 index 0000000..0dd1ea1 --- /dev/null +++ b/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": false, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/index.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/config.app.json b/config.app.json new file mode 100644 index 0000000..625097d --- /dev/null +++ b/config.app.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": [ + "./src/*" + ] + } + } + } \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..238d2e4 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,38 @@ +import js from '@eslint/js' +import globals from 'globals' +import react from 'eslint-plugin-react' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + settings: { react: { version: '18.3' } }, + plugins: { + react, + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + ...reactHooks.configs.recommended.rules, + 'react/jsx-no-target-blank': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +] diff --git a/index.html b/index.html new file mode 100644 index 0000000..a4916cd --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + BluejayJoin + + +
+ + + diff --git a/index.js b/index.js deleted file mode 100644 index 9d4276d..0000000 --- a/index.js +++ /dev/null @@ -1,59 +0,0 @@ -const dotenv = require('dotenv'); -dotenv.config(); -if (process.env.NEW_RELIC_APP_NAME && process.env.NEW_RELIC_LICENSE_KEY) require('newrelic'); - -const app = require('express')(); -const http = require('http').createServer(app); -const port = process.env.PORT || 5000; -const axios = require('axios'); - -var CryptoJS = require("crypto-js"); -const e = require('express'); - -app.get('/', (req, res) => { - if (process.env.NODE_ENV === 'production') { - res.sendFile(__dirname + '/views/index.html'); - } else { - res.sendFile(__dirname + '/views/index-local.html'); - } -}); - -app.get('/wizard', (req, res) => { - if (process.env.NODE_ENV === 'production') { - res.sendFile(__dirname + '/views/wizard.html'); - } else { - res.sendFile(__dirname + '/views/wizard-local.html'); - } -}); - -app.get('/checker', (req, res) => { - res.sendFile(__dirname + '/views/checker.html'); -}); - -app.get('/encrypt', (req, res) => { - var encrypted = CryptoJS.AES.encrypt(req.query.text, process.env.PRIVATE_KEY); - res.send(encrypted.toString()) -}); - -app.get('/check_encrypt', (req, res) => { - var decrypted = CryptoJS.AES.decrypt(req.query.encValue, process.env.PRIVATE_KEY); - res.send(decrypted.toString(CryptoJS.enc.Utf8) === req.query.value) -}); - -app.get('/getYml', async(req, res) => { - let yml - await axios.get('https://raw.githubusercontent.com/' + req.query.githubOwner + '/' + req.query.githubRepo + '/' + 'main' + '/' + 'info.yml', { headers: { Authorization: process.env.KEY_GITHUB ? 'token ' + process.env.KEY_GITHUB : '' }}) - .then(res => yml = res.data) - .catch(error => console.log(error)) - res.send(yml) -}); - -app.get('/badge', (req, res) => { - res.sendFile(__dirname + '/views/badge.html'); -}); - -http.listen(port, () => { - console.log("Server ready on port " + port); -}); - - diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..c932e63 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } + } \ No newline at end of file diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..8947da2 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,20 @@ +server { + listen 80; + server_name localhost; + + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri $uri/ /index.html; + } + + location /api/v1/frontend/ { + try_files $uri $uri/ /index.html; + } + + error_page 404 /index.html; + location = /index.html { + internal; + } +} diff --git a/package-lock.json b/package-lock.json index 420b734..edf6ba9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,2178 +1,8497 @@ { - "name": "info-validator", - "version": "1.9.1", - "lockfileVersion": 2, + "name": "join", + "version": "0.0.0", + "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "info-validator", - "version": "1.9.1", - "license": "ISC", + "name": "join", + "version": "0.0.0", "dependencies": { - "axios": "^0.24.0", - "crypto-js": "^4.1.1", - "dotenv": "^10.0.0", - "express": "^4.17.1", - "newrelic": "latest" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "@hookform/resolvers": "^3.10.0", + "@radix-ui/react-accordion": "^1.2.2", + "@radix-ui/react-avatar": "^1.1.2", + "@radix-ui/react-checkbox": "^1.1.3", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.4", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-scroll-area": "^1.2.2", + "@radix-ui/react-select": "^2.1.5", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-switch": "^1.1.2", + "@radix-ui/react-tabs": "^1.1.2", + "@radix-ui/react-toast": "^1.2.4", + "@radix-ui/react-tooltip": "^1.1.6", + "@shadcn/ui": "^0.0.4", + "@vitejs/plugin-react": "^4.3.4", + "axios": "^1.7.9", + "button": "^1.1.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "date-fns": "^4.1.0", + "dotenv": "^16.4.7", + "framer-motion": "^11.16.0", + "leaflet": "^1.9.4", + "lucide-react": "^0.469.0", + "react": "^18.3.1", + "react-chartjs-2": "^5.3.0", + "react-dom": "^18.3.1", + "react-hook-form": "^7.54.2", + "react-router-dom": "^7.1.1", + "recharts": "^2.15.0", + "sonner": "^1.7.1", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "yamljs": "^0.3.0", + "zod": "^3.24.1" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/node": "^22.10.5", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.20", + "eslint": "^9.17.0", + "eslint-plugin-react": "^7.37.2", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "pnpm": "^9.15.3", + "postcss": "^8.4.49", + "rollup": "^4.30.1", + "tailwindcss": "^3.4.17", + "vite": "^6.0.7" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", "engines": { - "node": ">=0.1.90" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@contrast/fn-inspect": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@contrast/fn-inspect/-/fn-inspect-3.3.0.tgz", - "integrity": "sha512-iulijoAuhfamXZNWsEy4ORNd8TxqD6aKeMiukDpWSwuRJ3sB+4lOmY2DkP2WwlBpYMmh3k4/7LHP2I925Y2xKQ==", - "hasInstallScript": true, - "optional": true, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", "dependencies": { - "nan": "^2.16.0", - "node-gyp-build": "^4.4.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">=12.13.0" + "node": ">=6.0.0" } }, - "node_modules/@grpc/grpc-js": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.8.tgz", - "integrity": "sha512-4gfDqMLXTrorvYTKA1jL22zLvVwiHJ73t6Re1OHwdCFRjdGTDOVtSJuaWhtHaivyeDGg0LeCkmU77MTKoV3wPA==", + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { - "node": "^8.13.0 || >=10.10.0" + "node": ">=6.9.0" } }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz", - "integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=6.9.0" } }, - "node_modules/@newrelic/aws-sdk": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@newrelic/aws-sdk/-/aws-sdk-5.0.2.tgz", - "integrity": "sha512-vn5Aj0ZznjzqqxR69mHIWi7QUjBeab9f0Dfra/UOPZlyLy3Q/HbK4/sYV9/q/Ifmx85B3kJI4ca7mytCx073VQ==", + "node_modules/@babel/core": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", + "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, - "peerDependencies": { - "newrelic": ">=8.7.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@newrelic/koa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@newrelic/koa/-/koa-7.1.1.tgz", - "integrity": "sha512-QvO6Wmz+wws0vtrpqsZz3KVMbDySY7VbdIu99f9fuWd775yNCTz2n2VfQhdkBxWlSQSlR4gO0Uh8RWa4HUzb3g==", + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "peerDependencies": { - "newrelic": ">=6.11.0" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@newrelic/native-metrics": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@newrelic/native-metrics/-/native-metrics-9.0.0.tgz", - "integrity": "sha512-WYDRs4hlFerUyism2TjF1PIJfP8w50Nc9Kt61zWNrGM3QYOrKXZ5ibA3R0fQgU0+LM7UWtQ9g7onFpVUGsj8QQ==", - "hasInstallScript": true, - "optional": true, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", "dependencies": { - "https-proxy-agent": "^5.0.0", - "nan": "^2.16.0", - "semver": "^5.5.1" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { - "node": ">=14", - "npm": ">=6" + "node": ">=6.9.0" } }, - "node_modules/@newrelic/superagent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@newrelic/superagent/-/superagent-6.0.0.tgz", - "integrity": "sha512-5nClQp9ACd4BvLusAgFHjjKLDgAaC+dKmIsRNOPC82LOLFaoOgxxtbecnDIJ0NWCKQS+WOdmXdgYutwH+e5dsA==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, "engines": { - "node": ">=14.0" + "node": ">=6.9.0" }, "peerDependencies": { - "newrelic": ">=6.11.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/node": { - "version": "18.13.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", - "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==" + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@types/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@tyriar/fibonacci-heap": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@tyriar/fibonacci-heap/-/fibonacci-heap-2.0.9.tgz", - "integrity": "sha512-bYuSNomfn4hu2tPiDN+JZtnzCpSpbJ/PNeulmocDy3xN2X5OkJL65zo6rPZp65cPPhLF9vfT/dgE+RtFRCSxOA==" + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "license": "MIT", "dependencies": { - "debug": "4" + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">= 6.0.0" + "node": ">=6.0.0" } }, - "node_modules/agent-base/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/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=6.0" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "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" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "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==", + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "node_modules/@babel/runtime": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", + "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.14.4" + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, "engines": { - "node": "*" + "node": ">=6.9.0" } }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=6.9.0" } }, - "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/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=7.0.0" + "node": ">=18" } }, - "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/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "engines": [ - "node >= 6.0" + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 0.8" + "node": ">=18" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=18" } }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "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/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.8" + "node": ">=18" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=18" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.8" + "node": ">=18" } }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" ], "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=18" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">= 0.6" + "node": ">=18" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=18" } }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">= 0.4.0" + "node": ">=18" } }, - "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==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.8" + "node": ">=18" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 6" + "node": ">=18" } }, - "node_modules/https-proxy-agent/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/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=6.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "funding": { + "url": "https://opencollective.com/eslint" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/@eslint-community/eslint-utils/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, + "license": "Apache-2.0", "engines": { - "node": ">= 0.10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/logform": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", - "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@colors/colors": "1.5.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/logform/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, "engines": { - "node": ">= 0.6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/@eslint/core": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { - "node": ">= 0.6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.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": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, + "node_modules/@eslint/js": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "optional": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 0.6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/newrelic": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/newrelic/-/newrelic-9.10.0.tgz", - "integrity": "sha512-JRbvdfgAQSkJynWH67gDsvkVP7h7Foeic8vC7JuB4YEzg3gjBZcdjjtZ4W9kHFjGSUMJesKeIesaBWlvUKqWUA==", - "dependencies": { - "@grpc/grpc-js": "^1.8.4", - "@grpc/proto-loader": "^0.7.4", - "@newrelic/aws-sdk": "^5.0.2", - "@newrelic/koa": "^7.1.1", - "@newrelic/superagent": "^6.0.0", - "@tyriar/fibonacci-heap": "^2.0.7", - "concat-stream": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "json-bigint": "^1.0.0", - "json-stringify-safe": "^5.0.0", - "readable-stream": "^3.6.0", - "semver": "^5.3.0", - "winston-transport": "^4.5.0" - }, - "bin": { - "newrelic-naming-rules": "bin/test-naming-rules.js" + "node_modules/@eslint/plugin-kit": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.10.0", + "levn": "^0.4.1" }, "engines": { - "node": ">=14", - "npm": ">=6.0.0" - }, - "optionalDependencies": { - "@contrast/fn-inspect": "^3.3.0", - "@newrelic/native-metrics": "^9.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" } }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "@floating-ui/dom": "^1.0.0" }, - "engines": { - "node": ">= 0.8" + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "node_modules/@hookform/resolvers": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz", + "integrity": "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==", + "license": "MIT", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } }, - "node_modules/protobufjs": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", - "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=12.0.0" + "node": ">=18.18.0" } }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">= 0.10" + "node": ">=18.18.0" } }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "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, + "license": "Apache-2.0", "engines": { - "node": ">=0.6" + "node": ">=12.22" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 0.6" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "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==", + "license": "ISC", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "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": ">= 0.8" + "node": ">=12" } }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">= 6" + "node": ">=6.0.0" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", - "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" + "node": ">=6.0.0" } }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", + "license": "MIT", + "peer": true + }, + "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==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 8" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">= 8" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 8" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, "engines": { - "node": ">= 0.8" + "node": ">=14" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==", + "license": "MIT" }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.2.tgz", + "integrity": "sha512-b1oh54x4DMCdGsB4/7ahiSrViXxaBwRPotiZNnYXjLha9vfuURSAZErki6qjDoSIV0eXx5v57XnTGVtGwnfp2g==", + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collapsible": "1.1.2", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "@radix-ui/react-primitive": "2.0.1" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.2.tgz", + "integrity": "sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.3.tgz", + "integrity": "sha512-HD7/ocp8f1B3e6OHygH0n7ZKjONkhciy1Nh0yuBgObqThc3oyx+vuMfFHKAknXRHHWVE9XvXStxJFyjUmB8PIw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.2.tgz", + "integrity": "sha512-PliMB63vxz7vggcyq0IxNYk8vGDrLXVWw4+W4B8YnwI1s18x7YZYqlG9PLX7XxAJUi0g2DxP4XKJMFHh/iVh9A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", + "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.5.tgz", + "integrity": "sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.4.tgz", + "integrity": "sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.5.tgz", + "integrity": "sha512-50ZmEFL1kOuLalPKHrLWvPFMons2fGx9TqQCWlPwDVpbAnaUJ1g4XNcKqFNMQymYU0kKWR4MDDi+9vUQBGFgcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.5", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.1.tgz", + "integrity": "sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.5.tgz", + "integrity": "sha512-uH+3w5heoMJtqVCgYOtYVMECk1TOrkUn0OG0p5MqXC0W2ppcuVeESbou8PTHoqAjbdTEK19AGXBWcEtR5WpEQg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", + "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.2.tgz", + "integrity": "sha512-EFI1N/S3YxZEW/lJ/H1jY3njlvTd8tBmgKEn4GHi51+aMm94i6NmAJstsm5cu3yJwYqYc93gpCPm21FeAbFk6g==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.5.tgz", + "integrity": "sha512-eVV7N8jBXAXnyrc+PsOF89O9AfVgGnbLxUtBb0clJ8y8ENMWLARGMI/1/SBRLz7u4HqxLgN71BJ17eono3wcjA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.2.tgz", + "integrity": "sha512-zGukiWHjEdBCRyXvKR6iXAQG6qXm2esuAD6kDOi9Cn+1X6ev3ASo4+CsYaD6Fov9r/AQFekqnD/7+V0Cs6/98g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", + "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.5.tgz", + "integrity": "sha512-ZzUsAaOx8NdXZZKcFNDhbSlbsCUy8qQWmzTdgrlrhhZAOx2ofLtKrBDW9fkqhFvXgmtv560Uj16pkLkqML7SHA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.7.tgz", + "integrity": "sha512-ss0s80BC0+g0+Zc53MvilcnTYSOi4mSuFWBPYPuTOFGjx+pUU+ZrmamMNwS56t8MTFlniA5ocjd4jYm/CdhbOg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz", + "integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.0.tgz", + "integrity": "sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.0.tgz", + "integrity": "sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.0.tgz", + "integrity": "sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.0.tgz", + "integrity": "sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.0.tgz", + "integrity": "sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.0.tgz", + "integrity": "sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.0.tgz", + "integrity": "sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.0.tgz", + "integrity": "sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.0.tgz", + "integrity": "sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.0.tgz", + "integrity": "sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.0.tgz", + "integrity": "sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.0.tgz", + "integrity": "sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.0.tgz", + "integrity": "sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.0.tgz", + "integrity": "sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.0.tgz", + "integrity": "sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.0.tgz", + "integrity": "sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.0.tgz", + "integrity": "sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.0.tgz", + "integrity": "sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.0.tgz", + "integrity": "sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shadcn/ui": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@shadcn/ui/-/ui-0.0.4.tgz", + "integrity": "sha512-0dtu/5ApsOZ24qgaZwtif8jVwqol7a4m1x5AxPuM1k5wxhqU7t/qEfBGtaSki1R8VlbTQfCj5PAlO45NKCa7Gg==", + "license": "MIT", + "dependencies": { + "chalk": "5.2.0", + "commander": "^10.0.0", + "execa": "^7.0.0", + "fs-extra": "^11.1.0", + "node-fetch": "^3.3.0", + "ora": "^6.1.2", + "prompts": "^2.4.2", + "zod": "^3.20.2" + }, + "bin": { + "ui": "dist/index.js" + } + }, + "node_modules/@shadcn/ui/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@swc/core": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.9.tgz", + "integrity": "sha512-MQ97YSXu2oibzm7wi4GNa7hhndjLuVt/lmO2sq53+P37oZmyg/JQ/IYYtSiC6UGK3+cHoiVAykrK+glxLjJbag==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.17" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.10.9", + "@swc/core-darwin-x64": "1.10.9", + "@swc/core-linux-arm-gnueabihf": "1.10.9", + "@swc/core-linux-arm64-gnu": "1.10.9", + "@swc/core-linux-arm64-musl": "1.10.9", + "@swc/core-linux-x64-gnu": "1.10.9", + "@swc/core-linux-x64-musl": "1.10.9", + "@swc/core-win32-arm64-msvc": "1.10.9", + "@swc/core-win32-ia32-msvc": "1.10.9", + "@swc/core-win32-x64-msvc": "1.10.9" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.9.tgz", + "integrity": "sha512-XTHLtijFervv2B+i1ngM993umhSj9K1IeMomvU/Db84Asjur2XmD4KXt9QPnGDRFgv2kLSjZ+DDL25Qk0f4r+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.9.tgz", + "integrity": "sha512-bi3el9/FV/la8HIsolSjeDar+tM7m9AmSF1w7X6ZByW2qgc4Z1tmq0A4M4H9aH3TfHesZbfq8hgaNtc2/VtzzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.9.tgz", + "integrity": "sha512-xsLHV02S+RTDuI+UJBkA2muNk/s0ETRpoc1K/gNt0i8BqTurPYkrvGDDALN9+leiUPydHvZi9P1qdExbgUJnXw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.9.tgz", + "integrity": "sha512-41hJgPoGhIa12U6Tud+yLF/m64YA3mGut3TmBEkj2R7rdJdE0mljdtR0tf4J2RoQaWZPPi0DBSqGdROiAEx9dg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.9.tgz", + "integrity": "sha512-DUMRhl49b9r7bLg9oNzCdW4lLcDJKrRBn87Iq5APPvixsm1auGnsVQycGkQcDDKvVllxIFSbmCYzjagx3l8Hnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.9.tgz", + "integrity": "sha512-xW0y88vQvmzYo3Gn7yFnY03TfHMwuca4aFH3ZmhwDNOYHmTOi6fmhAkg/13F/NrwjMYO+GnF5uJTjdjb3B6tdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.9.tgz", + "integrity": "sha512-jYs32BEx+CPVuxN6NdsWEpdehjnmAag25jyJzwjQx+NCGYwHEV3bT5y8TX4eFhaVB1rafmqJOlYQPs4+MSyGCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.9.tgz", + "integrity": "sha512-Uhh5T3Fq3Nyom96Bm3ACBNASH3iqNc76in7ewZz8PooUqeTIO8aZpsghnncjctRNE9T819/8btpiFIhHo3sKtg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.9.tgz", + "integrity": "sha512-bD5BpbojEsDfrAvT+1qjQPf5RCKLg4UL+3Uwm019+ZR02hd8qO538BlOnQdOqRqccu+75DF6aRglQ7AJ24Cs0Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.9.tgz", + "integrity": "sha512-NwkuUNeBBQnAaXVvcGw8Zr6RR8kylyjFUnlYZZ3G0QkQZ4rYLXYTafAmiRjrfzgVb0LcMF/sBzJvGOk7SwtIDg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", + "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.2.tgz", + "integrity": "sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@swc/core": "^1.7.26" + }, + "peerDependencies": { + "vite": "^4 || ^5 || ^6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "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, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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.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, + "license": "MIT", + "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.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "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" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "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, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/button": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/button/-/button-1.1.1.tgz", + "integrity": "sha512-/eICyCdXkem6L3i02jNfo7CgY0lDtELov2IhiTAUkkl3kTnnr/Jee0Fjnj4TuLwl8wkdtplZaWWXMCeowmkmpA==", + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=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==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "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, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chart.js": { + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.7.tgz", + "integrity": "sha512-pwkcKfdzTMAU/+jNosKhNL2bHtJc/sSmYgVbuGTEDhzkrhmyihmP7vUc/5ZK9WopidMDHNe3Wm7jOd/WhuHWuw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=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==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "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==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": 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==", + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.88", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz", + "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==", + "license": "ISC" + }, + "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==", + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.19.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", + "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "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==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz", + "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz", + "integrity": "sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "11.18.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", + "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", + "license": "MIT", + "dependencies": { + "motion-dom": "^11.18.1", + "motion-utils": "^11.18.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "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, + "license": "MIT", + "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", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.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", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "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", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "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", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.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", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "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", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "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, + "license": "MIT", + "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/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, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, + "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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "license": "MIT", + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.469.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.469.0.tgz", + "integrity": "sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/motion-dom": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", + "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", + "license": "MIT", + "dependencies": { + "motion-utils": "^11.18.1" + } + }, + "node_modules/motion-utils": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", + "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "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", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "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, + "license": "MIT", + "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/ora": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", + "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "strip-ansi": "^7.0.1", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pnpm": { + "version": "9.15.4", + "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-9.15.4.tgz", + "integrity": "sha512-stwg4vxys+GISEWbNzWaMgZGY+VielHkx0ssKd2OjgSRSDw6u0B4nP1Xi/Ni+2uoJhsF8Dh9dnku1uI+o7G2oA==", + "dev": true, + "license": "MIT", + "bin": { + "pnpm": "bin/pnpm.cjs", + "pnpx": "bin/pnpx.cjs" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-import/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-chartjs-2": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.3.0.tgz", + "integrity": "sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==", + "license": "MIT", + "peerDependencies": { + "chart.js": "^4.1.1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.54.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", + "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.3.tgz", + "integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.3.tgz", + "integrity": "sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==", + "license": "MIT", + "dependencies": { + "react-router": "7.1.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-smooth": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", + "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", + "license": "MIT", + "dependencies": { + "fast-equals": "^5.0.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recharts": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.0.tgz", + "integrity": "sha512-cIvMxDfpAmqAmVgc4yb7pgm/O1tmmkl/CjrvXuW+62/+7jj/iF9Ykm+hb/UJt42TREHMyd3gb+pkgoa2MxgDIw==", + "license": "MIT", + "dependencies": { + "clsx": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.21", + "react-is": "^18.3.1", + "react-smooth": "^4.0.0", + "recharts-scale": "^0.4.4", + "tiny-invariant": "^1.3.1", + "victory-vendor": "^36.6.8" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "license": "MIT", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/recharts/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "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==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.0.tgz", + "integrity": "sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.0", + "@rollup/rollup-android-arm64": "4.32.0", + "@rollup/rollup-darwin-arm64": "4.32.0", + "@rollup/rollup-darwin-x64": "4.32.0", + "@rollup/rollup-freebsd-arm64": "4.32.0", + "@rollup/rollup-freebsd-x64": "4.32.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.0", + "@rollup/rollup-linux-arm-musleabihf": "4.32.0", + "@rollup/rollup-linux-arm64-gnu": "4.32.0", + "@rollup/rollup-linux-arm64-musl": "4.32.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0", + "@rollup/rollup-linux-riscv64-gnu": "4.32.0", + "@rollup/rollup-linux-s390x-gnu": "4.32.0", + "@rollup/rollup-linux-x64-gnu": "4.32.0", + "@rollup/rollup-linux-x64-musl": "4.32.0", + "@rollup/rollup-win32-arm64-msvc": "4.32.0", + "@rollup/rollup-win32-ia32-msvc": "4.32.0", + "@rollup/rollup-win32-x64-msvc": "4.32.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "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", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.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", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sonner": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.7.2.tgz", + "integrity": "sha512-zMbseqjrOzQD1a93lxahm+qMGxWovdMxBlkTbbnZdNqVLt4j+amF9PQxUCL32WfztOFt9t9ADYkejAL3jF9iNA==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "license": "MIT", + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "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==", + "license": "MIT", + "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/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">= 6.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "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, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">=10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/strip-ansi-cjs/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==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8" } - } - }, - "dependencies": { - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" }, - "@contrast/fn-inspect": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@contrast/fn-inspect/-/fn-inspect-3.3.0.tgz", - "integrity": "sha512-iulijoAuhfamXZNWsEy4ORNd8TxqD6aKeMiukDpWSwuRJ3sB+4lOmY2DkP2WwlBpYMmh3k4/7LHP2I925Y2xKQ==", - "optional": true, - "requires": { - "nan": "^2.16.0", - "node-gyp-build": "^4.4.0" + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@grpc/grpc-js": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.8.tgz", - "integrity": "sha512-4gfDqMLXTrorvYTKA1jL22zLvVwiHJ73t6Re1OHwdCFRjdGTDOVtSJuaWhtHaivyeDGg0LeCkmU77MTKoV3wPA==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@grpc/proto-loader": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz", - "integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "@newrelic/aws-sdk": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@newrelic/aws-sdk/-/aws-sdk-5.0.2.tgz", - "integrity": "sha512-vn5Aj0ZznjzqqxR69mHIWi7QUjBeab9f0Dfra/UOPZlyLy3Q/HbK4/sYV9/q/Ifmx85B3kJI4ca7mytCx073VQ==", - "requires": {} - }, - "@newrelic/koa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@newrelic/koa/-/koa-7.1.1.tgz", - "integrity": "sha512-QvO6Wmz+wws0vtrpqsZz3KVMbDySY7VbdIu99f9fuWd775yNCTz2n2VfQhdkBxWlSQSlR4gO0Uh8RWa4HUzb3g==", - "requires": {} - }, - "@newrelic/native-metrics": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@newrelic/native-metrics/-/native-metrics-9.0.0.tgz", - "integrity": "sha512-WYDRs4hlFerUyism2TjF1PIJfP8w50Nc9Kt61zWNrGM3QYOrKXZ5ibA3R0fQgU0+LM7UWtQ9g7onFpVUGsj8QQ==", - "optional": true, - "requires": { - "https-proxy-agent": "^5.0.0", - "nan": "^2.16.0", - "semver": "^5.5.1" + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" } }, - "@newrelic/superagent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@newrelic/superagent/-/superagent-6.0.0.tgz", - "integrity": "sha512-5nClQp9ACd4BvLusAgFHjjKLDgAaC+dKmIsRNOPC82LOLFaoOgxxtbecnDIJ0NWCKQS+WOdmXdgYutwH+e5dsA==", - "requires": {} - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@types/node": { - "version": "18.13.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", - "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==" - }, - "@types/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" - }, - "@tyriar/fibonacci-heap": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@tyriar/fibonacci-heap/-/fibonacci-heap-2.0.9.tgz", - "integrity": "sha512-bYuSNomfn4hu2tPiDN+JZtnzCpSpbJ/PNeulmocDy3xN2X5OkJL65zo6rPZp65cPPhLF9vfT/dgE+RtFRCSxOA==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" } }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "requires": { - "follow-redirects": "^1.14.4" - } - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "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==" - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" + "node_modules/tailwindcss/node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==" - }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" } }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" } }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.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", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, + "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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "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==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { + "node_modules/typed-array-buffer": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "devOptional": true, + "license": "MIT" }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" } }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "logform": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", - "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", - "requires": { - "@colors/colors": "1.5.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true } } }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/victory-vendor": { + "version": "36.9.2", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/vite": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", + "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } }, - "merge-descriptors": { + "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "optional": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "newrelic": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/newrelic/-/newrelic-9.10.0.tgz", - "integrity": "sha512-JRbvdfgAQSkJynWH67gDsvkVP7h7Foeic8vC7JuB4YEzg3gjBZcdjjtZ4W9kHFjGSUMJesKeIesaBWlvUKqWUA==", - "requires": { - "@contrast/fn-inspect": "^3.3.0", - "@grpc/grpc-js": "^1.8.4", - "@grpc/proto-loader": "^0.7.4", - "@newrelic/aws-sdk": "^5.0.2", - "@newrelic/koa": "^7.1.1", - "@newrelic/native-metrics": "^9.0.0", - "@newrelic/superagent": "^6.0.0", - "@tyriar/fibonacci-heap": "^2.0.7", - "concat-stream": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "json-bigint": "^1.0.0", - "json-stringify-safe": "^5.0.0", - "readable-stream": "^3.6.0", - "semver": "^5.3.0", - "winston-transport": "^4.5.0" - } - }, - "node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "optional": true - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "protobufjs": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.2.tgz", - "integrity": "sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "range-parser": { + "node_modules/which-builtin-type": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "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, + "license": "MIT", + "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" } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-stable-stringify": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", - "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==" + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "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==", + "license": "MIT", + "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" } }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" + "node_modules/wrap-ansi-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "string-width": { + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { + "license": "MIT", + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-ansi": { + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { + "license": "MIT", + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "node_modules/wrap-ansi/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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "util-deprecate": { + "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "node_modules/yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "bin": { + "json2yaml": "bin/json2yaml", + "yaml2json": "bin/yaml2json" + } }, - "winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "requires": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" + "node_modules/yamljs/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "node_modules/yamljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index 69fa15f..3d30f62 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,69 @@ { - "name": "info-validator", - "version": "1.10.0", - "description": "info.yaml validator UI based on governify scope validator", - "main": "index.js", + "name": "join", + "private": true, + "version": "0.0.0", + "type": "module", "scripts": { - "start": "node index", - "test": "echo \"Error: no test specified\" && exit 1" + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview", + "add": "npx shadcn@latest add" }, - "author": "@pafmon", - "license": "ISC", "dependencies": { - "axios": "^0.24.0", - "crypto-js": "^4.1.1", - "dotenv": "^10.0.0", - "express": "^4.17.1", - "newrelic": "latest" + "@hookform/resolvers": "^3.10.0", + "@radix-ui/react-accordion": "^1.2.2", + "@radix-ui/react-avatar": "^1.1.2", + "@radix-ui/react-checkbox": "^1.1.3", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.4", + "@radix-ui/react-label": "^2.1.1", + "@radix-ui/react-scroll-area": "^1.2.2", + "@radix-ui/react-select": "^2.1.5", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-switch": "^1.1.2", + "@radix-ui/react-tabs": "^1.1.2", + "@radix-ui/react-toast": "^1.2.4", + "@radix-ui/react-tooltip": "^1.1.6", + "@shadcn/ui": "^0.0.4", + "@vitejs/plugin-react": "^4.3.4", + "axios": "^1.7.9", + "button": "^1.1.1", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "date-fns": "^4.1.0", + "dotenv": "^16.4.7", + "framer-motion": "^11.16.0", + "leaflet": "^1.9.4", + "lucide-react": "^0.469.0", + "react": "^18.3.1", + "react-chartjs-2": "^5.3.0", + "react-dom": "^18.3.1", + "react-hook-form": "^7.54.2", + "react-router-dom": "^7.1.1", + "recharts": "^2.15.0", + "sonner": "^1.7.1", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "yamljs": "^0.3.0", + "zod": "^3.24.1" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/node": "^22.10.5", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.20", + "eslint": "^9.17.0", + "eslint-plugin-react": "^7.37.2", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "pnpm": "^9.15.3", + "postcss": "^8.4.49", + "rollup": "^4.30.1", + "tailwindcss": "^3.4.17", + "vite": "^6.0.7" } -} \ No newline at end of file +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f139379411aa1af4d18a57c9b3651c29315af83 GIT binary patch literal 120101 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%0A5PSbwCb)h;I=}SQtw; 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%0D^>0s&u5`3z4=I<+Z7L) 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

W(H}U!1M|k{XS%NvGUn9{>H|AFsZIqT512g^B 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 csAY#=!Zj1l$i%m?-xKYE7{Lt74V189lPt^fc4 literal 0 HcmV?d00001 diff --git a/public/logohighquality.png b/public/logohighquality.png new file mode 100644 index 0000000000000000000000000000000000000000..f6d6c377739439175a0cd6a990307f994a1d88fa GIT binary patch literal 24395 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 nJwF6-T_6EBq5Hpn;tm

+
+ + + Welcome to the join-in page! + + +
+
+
+ + 1 + + Enter your GitHub or GitLab Repository URL +
+ + Please enter the URL containing the{" "} + + info.yml + {" "} + file in the main branch to check its validity. + +
+ setRepoURL(e.target.value)} + onKeyUp={(e) => e.key === "Enter" && check()} + /> + +
+
+ + Don't have an info.yml file?{" "} + + + Create one now! + +
+
+ Already have a registered project? + + Get your own badge here! + +
+ {result === "success" && ( + + + Success + + Yay!! That repo has a valid bluejay info.yml 😊 + + + )} + {result === "error" && ( + + + Error + + Ups!! There is a problem! 😔 Make sure the repository is accessible and public, and has a correct info.yml + + + )} +
+ + {courseMessage !== "hidden" && ( +
+
+
+ + 2 + + Register your project in a course +
+ + To register your project, please select a course and click on join! + + {courseJoinCode && ( +
+ setUserJoinCode(e.target.value)} + onKeyUp={(e) => e.key === "Enter" && generate()} + /> +
+ )} +
+ + +
+ {generationResult === "success" && ( + + + Success + Congrats! Your project has successfully joined Bluejay! + + )} + {generationResult === "error" && ( + + + Error + + Ups!! There is a problem! 😔 Please try again or contact admin. + + + )} + {generationResult === "invalid" && ( + + + Invalid Course + This course code does not exist 😲! Please enter a valid one. + + )} + {generationResult === "invalidJoinCode" && ( + + + Invalid Join Code + The join code you entered is incorrect. Please try again. + + )} + {generationResult === "blindSuccess" && ( + + + Success + Congrats! Your project has successfully joined Bluejay! + + )} + {generationResult.type === "dashboard" && ( + + + Success + + Congrats! Your project dashboard has been created!{" "} + + + )} + {generationResult.type === "existingProject" && ( + + + Project Already Exists + + The project already exists within the scope. You can access the existing dashboard using the following link:{" "} + + + )} +
+ )} +
+
+
+
+
+ ) +} + +export default JoinView \ No newline at end of file diff --git a/src/components/Navbar.jsx b/src/components/Navbar.jsx new file mode 100644 index 0000000..1e6912b --- /dev/null +++ b/src/components/Navbar.jsx @@ -0,0 +1,36 @@ +import { Redo2, WandSparkles, Award } from 'lucide-react'; + +import { Link } from 'react-router-dom'; + +const Navbar = () => { + return ( + + ); +}; + +export default Navbar; diff --git a/src/components/ViewWrapper.jsx b/src/components/ViewWrapper.jsx new file mode 100644 index 0000000..517de6a --- /dev/null +++ b/src/components/ViewWrapper.jsx @@ -0,0 +1,14 @@ +import Navbar from './Navbar' + +const ViewWrapper = ({ children }) => { + return ( +
+ +
+ {children} +
+
+ ) +} + +export default ViewWrapper diff --git a/src/components/WizardView.jsx b/src/components/WizardView.jsx new file mode 100644 index 0000000..fd09f2b --- /dev/null +++ b/src/components/WizardView.jsx @@ -0,0 +1,431 @@ +"use client" + +import React, { useState, useEffect } from "react" +import axios from "axios" +import YAML from "yamljs" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { Input } from "@/components/ui/input" +import { Button } from "@/components/ui/button" +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" +import { Checkbox } from "@/components/ui/checkbox" +import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" +import { Label } from "@/components/ui/label" +import { AlertCircle, Download, Upload, Plus, Trash2 } from "lucide-react" +import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert" + +const InfoYmlWizard = () => { + const [infoJson, setInfoJson] = useState({ + name: "", + owner: "", + teamId: "", + identities: {}, + notifications: {}, + members: {}, + }) + + const [selectsOptions, setSelectsOptions] = useState({ + identities: ["pivotal", "heroku"], + notifications: ["slack"], + }) + + const [ymlText, setYmlText] = useState("") + const [primarySelect, setPrimarySelect] = useState("identities") + const [secondarySelect, setSecondarySelect] = useState("") + const [fieldValue, setFieldValue] = useState("") + const [isCrypted, setIsCrypted] = useState(false) + const [newMemberName, setNewMemberName] = useState("") + const [newMemberSurname, setNewMemberSurname] = useState("") + const [githubUrl, setGithubUrl] = useState("") + const [downloadErrors, setDownloadErrors] = useState([]) + + useEffect(() => { + generateYml() + loadSecondaryOptions(primarySelect) + }, [primarySelect]) // Removed unnecessary dependency: infoJson + + const generateYml = () => { + const yml = YAML.stringify({ project: infoJson }, 5, 2) + setYmlText(yml.replace(/\n/g, "\r\n")) + } + + const loadSecondaryOptions = (primary) => { + setSecondarySelect(selectsOptions[primary]?.[0] || "") + } + + const handleAddMember = () => { + if (checkNewMember(newMemberName, newMemberSurname)) { + const memberTag = `member${Object.keys(infoJson.members).length + 1}` + setInfoJson((prev) => ({ + ...prev, + members: { + ...prev.members, + [memberTag]: { name: newMemberName, surname: newMemberSurname }, + }, + })) + setNewMemberName("") + setNewMemberSurname("") + } + } + + const handleAddField = async () => { + let value = fieldValue + if (isCrypted) { + value = await encrypt(fieldValue) + } + + if (primarySelect.includes("Members")) { + const memberKey = primarySelect.replace("Members > ", "") + setInfoJson((prev) => ({ + ...prev, + members: { + ...prev.members, + [memberKey]: { + ...prev.members[memberKey], + [secondarySelect]: value, + }, + }, + })) + } else { + setInfoJson((prev) => ({ + ...prev, + [primarySelect]: { + ...prev[primarySelect], + [secondarySelect]: value, + }, + })) + } + setFieldValue("") + } + + const handleDownload = async () => { + try { + const res = await axios.post("https://scopes.bluejay.governify.io/api/v1/scopes/development/check", { + name: "Wizard", + data: ymlText, + }) + const errors = res.data.projects[0].errors + setDownloadErrors(errors) + if (errors.length === 0) { + download("info.yml", ymlText) + } + } catch (error) { + console.error(error) + } + } + + const handleLoadYml = async () => { + try { + const [, , , githubOwner, githubRepo] = githubUrl.split("/") + const res = await axios.get("/getYml", { params: { githubOwner, githubRepo } }) + const nativeObject = YAML.parse(res.data) + setInfoJson(nativeObject.project) + } catch (error) { + console.error(error) + } + } + + const checkNewMember = (name, surname) => { + return name?.length > 3 && surname?.length > 3 + } + + const encrypt = async (text) => { + try { + const res = await axios.get("/encrypt", { params: { text } }) + return res.data + } catch (error) { + console.error(error) + return text + } + } + + const download = (filename, text) => { + const element = document.createElement("a") + element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(text)) + element.setAttribute("download", filename) + element.style.display = "none" + document.body.appendChild(element) + element.click() + document.body.removeChild(element) + } + + return ( +
+
+ + + Info.yml Wizard + + +
+
+ + + Project Details + + +
+ + setInfoJson((prev) => ({ ...prev, name: e.target.value }))} + /> +
+
+ + setInfoJson((prev) => ({ ...prev, owner: e.target.value }))} + /> +
+
+ + setInfoJson((prev) => ({ ...prev, teamId: e.target.value }))} + /> +
+
+
+ + + + Identities* + Notifications + Members* + + + + + Identities + + + {Object.entries(infoJson.identities).map(([key, value]) => ( +
+ + + +
+ ))} +
+
+
+ + + + Notifications + + + {Object.entries(infoJson.notifications).map(([key, value]) => ( +
+ + + +
+ ))} +
+
+
+ + + + Members (At least 1)* + + + {Object.entries(infoJson.members).map(([key, value]) => ( +
+
+

{key}

+ +
+
+ {Object.entries(value).map(([attrKey, attrValue]) => ( +
+ {attrKey}: + +
+ ))} +
+
+ ))} +
+
+
+
+ + + + Add New Data + + +
+
+ setNewMemberName(e.target.value)} + /> + setNewMemberSurname(e.target.value)} + /> + +
+ +
+ + + setFieldValue(e.target.value)} /> +
+ + +
+ +
+
+
+
+ + + + Note + Fields marked with * are mandatory. + + + +
+ +
+ + + YAML Preview + + +
+                      {ymlText}
+                    
+
+
+
+ + + + + + + Load yml from GitHub + + setGithubUrl(e.target.value)} + /> + + + + +
+
+
+
+
+ + {downloadErrors.length > 0 && ( + 0} onOpenChange={() => setDownloadErrors([])}> + + + Download Errors + +
    + {downloadErrors.map((error, index) => ( +
  • {error}
  • + ))} +
+
+
+ )} +
+
+ ) +} + +export default InfoYmlWizard + diff --git a/src/components/ui/alert.jsx b/src/components/ui/alert.jsx new file mode 100644 index 0000000..28597e8 --- /dev/null +++ b/src/components/ui/alert.jsx @@ -0,0 +1,47 @@ +import * as React from "react" +import { cva } from "class-variance-authority"; + +import { cn } from "@/lib/utils" + +const alertVariants = cva( + "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7", + { + variants: { + variant: { + default: "bg-background text-foreground", + destructive: + "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +const Alert = React.forwardRef(({ className, variant, ...props }, ref) => ( +
+)) +Alert.displayName = "Alert" + +const AlertTitle = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +AlertTitle.displayName = "AlertTitle" + +const AlertDescription = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +AlertDescription.displayName = "AlertDescription" + +export { Alert, AlertTitle, AlertDescription } diff --git a/src/components/ui/button.jsx b/src/components/ui/button.jsx new file mode 100644 index 0000000..8a29186 --- /dev/null +++ b/src/components/ui/button.jsx @@ -0,0 +1,48 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; // Updated import path + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + () + ); +}) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/src/components/ui/card.jsx b/src/components/ui/card.jsx new file mode 100644 index 0000000..2985cca --- /dev/null +++ b/src/components/ui/card.jsx @@ -0,0 +1,50 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Card = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +Card.displayName = "Card" + +const CardHeader = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +CardHeader.displayName = "CardHeader" + +const CardTitle = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +CardTitle.displayName = "CardTitle" + +const CardDescription = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +CardDescription.displayName = "CardDescription" + +const CardContent = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +CardContent.displayName = "CardContent" + +const CardFooter = React.forwardRef(({ className, ...props }, ref) => ( +
+)) +CardFooter.displayName = "CardFooter" + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/src/components/ui/checkbox.jsx b/src/components/ui/checkbox.jsx new file mode 100644 index 0000000..5e0c96b --- /dev/null +++ b/src/components/ui/checkbox.jsx @@ -0,0 +1,22 @@ +import * as React from "react" +import * as CheckboxPrimitive from "@radix-ui/react-checkbox" +import { Check } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Checkbox = React.forwardRef(({ className, ...props }, ref) => ( + + + + + +)) +Checkbox.displayName = CheckboxPrimitive.Root.displayName + +export { Checkbox } diff --git a/src/components/ui/dialog.jsx b/src/components/ui/dialog.jsx new file mode 100644 index 0000000..b41b8e1 --- /dev/null +++ b/src/components/ui/dialog.jsx @@ -0,0 +1,94 @@ +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}) => ( +
+) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}) => ( +
+) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/src/components/ui/input.jsx b/src/components/ui/input.jsx new file mode 100644 index 0000000..41ec05e --- /dev/null +++ b/src/components/ui/input.jsx @@ -0,0 +1,19 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Input = React.forwardRef(({ className, type, ...props }, ref) => { + return ( + () + ); +}) +Input.displayName = "Input" + +export { Input } diff --git a/src/components/ui/label.jsx b/src/components/ui/label.jsx new file mode 100644 index 0000000..a1f4099 --- /dev/null +++ b/src/components/ui/label.jsx @@ -0,0 +1,16 @@ +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva } from "class-variance-authority"; + +import { cn } from "@/lib/utils" + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" +) + +const Label = React.forwardRef(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label } diff --git a/src/components/ui/select.jsx b/src/components/ui/select.jsx new file mode 100644 index 0000000..4f1a963 --- /dev/null +++ b/src/components/ui/select.jsx @@ -0,0 +1,119 @@ +import * as React from "react" +import * as SelectPrimitive from "@radix-ui/react-select" +import { Check, ChevronDown, ChevronUp } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => ( + span]:line-clamp-1", + className + )} + {...props}> + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectScrollUpButton = React.forwardRef(({ className, ...props }, ref) => ( + + + +)) +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName + +const SelectScrollDownButton = React.forwardRef(({ className, ...props }, ref) => ( + + + +)) +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName + +const SelectContent = React.forwardRef(({ className, children, position = "popper", ...props }, ref) => ( + + + + + {children} + + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +} diff --git a/src/components/ui/tabs.jsx b/src/components/ui/tabs.jsx new file mode 100644 index 0000000..b674eb9 --- /dev/null +++ b/src/components/ui/tabs.jsx @@ -0,0 +1,41 @@ +import * as React from "react" +import * as TabsPrimitive from "@radix-ui/react-tabs" + +import { cn } from "@/lib/utils" + +const Tabs = TabsPrimitive.Root + +const TabsList = React.forwardRef(({ className, ...props }, ref) => ( + +)) +TabsList.displayName = TabsPrimitive.List.displayName + +const TabsTrigger = React.forwardRef(({ className, ...props }, ref) => ( + +)) +TabsTrigger.displayName = TabsPrimitive.Trigger.displayName + +const TabsContent = React.forwardRef(({ className, ...props }, ref) => ( + +)) +TabsContent.displayName = TabsPrimitive.Content.displayName + +export { Tabs, TabsList, TabsTrigger, TabsContent } diff --git a/src/config.js b/src/config.js new file mode 100644 index 0000000..ee02dc1 --- /dev/null +++ b/src/config.js @@ -0,0 +1,13 @@ +const config = { + scopeUrl: import.meta.env.VITE_SCOPE_URL || 'http://localhost:5700', // 'https://scopes.bluejay.governify.io' + registryUrl: import.meta.env.VITE_REGISTRY_URL || 'http://localhost:5400', // 'https://registry.bluejay.governify.io' + internalAssetsUrl: import.meta.env.VITE_INTERNAL_ASSETS_URL || 'http://host.docker.internal:5200', // 'http://bluejay-assets-manager' + internalScopeUrl: import.meta.env.VITE_INTERNAL_SCOPE_URL || 'http://host.docker.internal:5700', // 'http://bluejay-scope-manager' + renderUrl: import.meta.env.VITE_RENDER_URL || 'http://localhost:5100', // 'https://render.bluejay.governify.io' + dashboardUrl: import.meta.env.VITE_DASHBOARD_URL || 'http://localhost:5600', // 'https://dashboard.bluejay.governify.io' + reporterUrl: import.meta.env.VITE_REPORTER_URL || 'http://localhost:5300', // 'https://reporter.bluejay.governify.io' + directorUrl: import.meta.env.VITE_DIRECTOR_URL || 'http://localhost:5800', // 'https://director.bluejay.governify.io' + assetsUrl: import.meta.env.VITE_ASSETS_URL || 'http://localhost:5200', // 'https://assets.bluejay.governify.io' +}; + +export default config; \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..46947be --- /dev/null +++ b/src/index.css @@ -0,0 +1,66 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 0 0% 3.9%; + --card: 0 0% 100%; + --card-foreground: 0 0% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 0 0% 3.9%; + --primary: 0 0% 9%; + --primary-foreground: 0 0% 98%; + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem + } + .dark { + --background: 0 0% 3.9%; + --foreground: 0 0% 98%; + --card: 0 0% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 0 0% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 0 0% 9%; + --secondary: 0 0% 14.9%; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + --accent: 0 0% 14.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55% + } +} +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} \ No newline at end of file diff --git a/src/lib/utils.js b/src/lib/utils.js new file mode 100644 index 0000000..b20bf01 --- /dev/null +++ b/src/lib/utils.js @@ -0,0 +1,6 @@ +import { clsx } from "clsx"; +import { twMerge } from "tailwind-merge" + +export function cn(...inputs) { + return twMerge(clsx(inputs)); +} diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..dd27c2f --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './components/App' + +createRoot(document.getElementById('root')).render( + + + , +) diff --git a/views/badge.html b/src/oldViews/badge.html similarity index 100% rename from views/badge.html rename to src/oldViews/badge.html diff --git a/views/checker.html b/src/oldViews/checker.html similarity index 100% rename from views/checker.html rename to src/oldViews/checker.html diff --git a/views/index-local.html b/src/oldViews/index-local.html similarity index 100% rename from views/index-local.html rename to src/oldViews/index-local.html diff --git a/views/index.html b/src/oldViews/index.html similarity index 100% rename from views/index.html rename to src/oldViews/index.html diff --git a/views/wizard-local.html b/src/oldViews/wizard-local.html similarity index 100% rename from views/wizard-local.html rename to src/oldViews/wizard-local.html diff --git a/views/wizard.html b/src/oldViews/wizard.html similarity index 100% rename from views/wizard.html rename to src/oldViews/wizard.html diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..753e43d --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,82 @@ +/** @type {import('tailwindcss').Config} */ +export default { + darkMode: ["class"], + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: { + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)' + }, + colors: { + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))' + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))' + }, + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))' + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))' + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))' + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))' + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))' + }, + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + chart: { + '1': 'hsl(var(--chart-1))', + '2': 'hsl(var(--chart-2))', + '3': 'hsl(var(--chart-3))', + '4': 'hsl(var(--chart-4))', + '5': 'hsl(var(--chart-5))' + } + }, + keyframes: { + 'accordion-down': { + from: { + height: '0' + }, + to: { + height: 'var(--radix-accordion-content-height)' + } + }, + 'accordion-up': { + from: { + height: 'var(--radix-accordion-content-height)' + }, + to: { + height: '0' + } + } + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out' + } + } + }, + plugins: [require("tailwindcss-animate")], +} \ No newline at end of file diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..b6953d8 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,24 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import tailwindcss from 'tailwindcss' +import path from 'path' // Importar el módulo path +import dotenv from 'dotenv' +dotenv.config() + +export default defineConfig({ + server: { + port: parseInt(process.env.PORT) || 3000, + }, + plugins: [react()], + base: '/', + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, + css: { + postcss: { + plugins: [tailwindcss()], + }, + } +}) \ No newline at end of file From e234f303696429f50ebb2b6a5604b7d7e3129e6a Mon Sep 17 00:00:00 2001 From: JaviFdez7 Date: Fri, 31 Jan 2025 09:26:07 +0100 Subject: [PATCH 4/9] fix: update default server port to 6001 --- vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vite.config.js b/vite.config.js index b6953d8..4e1cb81 100644 --- a/vite.config.js +++ b/vite.config.js @@ -7,7 +7,7 @@ dotenv.config() export default defineConfig({ server: { - port: parseInt(process.env.PORT) || 3000, + port: parseInt(process.env.PORT) || 6001, }, plugins: [react()], base: '/', From 5a573ce19c93a734069db2b8505fa108078efa48 Mon Sep 17 00:00:00 2001 From: JaviFdez7 Date: Fri, 31 Jan 2025 19:44:02 +0100 Subject: [PATCH 5/9] feat: add MoreInfo component for additional context and fix join messages --- package-lock.json | 9 +++--- package.json | 5 ++-- src/components/DashboardBadge.jsx | 2 ++ src/components/JoinView.jsx | 48 ++++++++++++++----------------- src/components/MoreInfo.jsx | 28 ++++++++++++++++++ src/components/ui/collapsible.jsx | 9 ++++++ 6 files changed, 69 insertions(+), 32 deletions(-) create mode 100644 src/components/MoreInfo.jsx create mode 100644 src/components/ui/collapsible.jsx diff --git a/package-lock.json b/package-lock.json index edf6ba9..07c0526 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,18 @@ { - "name": "join", - "version": "0.0.0", + "name": "join-bluejay", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "join", - "version": "0.0.0", + "name": "join-bluejay", + "version": "2.0.0", "dependencies": { "@hookform/resolvers": "^3.10.0", "@radix-ui/react-accordion": "^1.2.2", "@radix-ui/react-avatar": "^1.1.2", "@radix-ui/react-checkbox": "^1.1.3", + "@radix-ui/react-collapsible": "^1.1.2", "@radix-ui/react-dialog": "^1.1.5", "@radix-ui/react-dropdown-menu": "^2.1.4", "@radix-ui/react-label": "^2.1.1", diff --git a/package.json b/package.json index 3d30f62..10aab53 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "join", + "name": "join-bluejay", "private": true, - "version": "0.0.0", + "version": "2.0.0", "type": "module", "scripts": { "dev": "vite", @@ -15,6 +15,7 @@ "@radix-ui/react-accordion": "^1.2.2", "@radix-ui/react-avatar": "^1.1.2", "@radix-ui/react-checkbox": "^1.1.3", + "@radix-ui/react-collapsible": "^1.1.2", "@radix-ui/react-dialog": "^1.1.5", "@radix-ui/react-dropdown-menu": "^2.1.4", "@radix-ui/react-label": "^2.1.1", diff --git a/src/components/DashboardBadge.jsx b/src/components/DashboardBadge.jsx index 4ddfc04..64a398f 100644 --- a/src/components/DashboardBadge.jsx +++ b/src/components/DashboardBadge.jsx @@ -7,6 +7,8 @@ const DashboardBadge = ({ url, teamId, hidden }) => { return ( <> + You can access the dashboard using the following link: +
{ const [courseMessage, setCourseMessage] = useState("hidden") const [userJoinCode, setUserJoinCode] = useState("") const [courseJoinCode, setCourseJoinCode] = useState("") - const blindCourses = ['PSG2-2021', 'ISPP-2021'] + const [showMoreInfo, setShowMoreInfo] = useState(false); useEffect(() => { fetch(`${config.scopeUrl}/api/v1/scopes/development/courses`) @@ -98,6 +99,7 @@ const JoinView = () => { const showGenerationResult = (result, courseId) => { if (result.code === 200 && result.projects.length === 1) { const err = result.projects[0].errors; + console.log("Result: ", JSON.stringify(result, null, 2)); if (err) console.log(err); if (!err || err.length === 0) { const projectScope = result.projects[0].newScope; @@ -149,20 +151,16 @@ const JoinView = () => { .catch(error => { console.error('Error fetching course -> template id :', error); }); - if (blindCourses.includes(courseId)) { - setGenerationResult("blindSuccess"); + const dashboardURL = `${config.dashboardUrl}/dashboard/script/dashboardLoader.js?dashboardURL=${config.reporterUrl}/api/v4/dashboards/tpa-${projectScope.projectId}/main`; + if(result.projects[0].oldScope) { + setGenerationResult({ type: "successUpdate", url: dashboardURL, teamId: projectScope.teamId }); } else { - const dashboardURL = `${config.dashboardUrl}/dashboard/script/dashboardLoader.js?dashboardURL=${config.reporterUrl}/api/v4/dashboards/tpa-${projectScope.projectId}/main`; - setGenerationResult({ type: "dashboard", url: dashboardURL, teamId: projectScope.teamId }); + setGenerationResult({ type: "successJoin", url: dashboardURL, teamId: projectScope.teamId }); } } else if (err[0] === 'The is no new changes for this project scope.') { const projectScope = result.projects[0].oldScope; - if (blindCourses.includes(courseId)) { - setGenerationResult("existingBlindSuccess"); - } else { - const dashboardURL = `${config.dashboardUrl}/dashboard/script/dashboardLoader.js?dashboardURL=${config.reporterUrl}/api/v4/dashboards/tpa-${projectScope.projectId}/main`; - setGenerationResult({ type: "existingProject", url: dashboardURL, teamId: projectScope.teamId }); - } + const dashboardURL = `${config.dashboardUrl}/dashboard/script/dashboardLoader.js?dashboardURL=${config.reporterUrl}/api/v4/dashboards/tpa-${projectScope.projectId}/main`; + setGenerationResult({ type: "existingProject", url: dashboardURL, teamId: projectScope.teamId }); } else { setGenerationResult("error"); } @@ -367,6 +365,7 @@ const JoinView = () => { const selected = courses.find(course => course.classId === value) setSelectedCourse(selected) setGenerationResult("") + setShowMoreInfo(false) }}> @@ -381,13 +380,6 @@ const JoinView = () => {
- {generationResult === "success" && ( - - - Success - Congrats! Your project has successfully joined Bluejay! - - )} {generationResult === "error" && ( @@ -411,19 +403,22 @@ const JoinView = () => { The join code you entered is incorrect. Please try again. )} - {generationResult === "blindSuccess" && ( + {generationResult.type === "successJoin" && ( - Success - Congrats! Your project has successfully joined Bluejay! + Successful Join + + Congrats! Your project has successfully joined Bluejay!{" "} + )} - {generationResult.type === "dashboard" && ( + {generationResult.type === "successUpdate" && ( - Success + Successful Update - Congrats! Your project dashboard has been created!{" "} + Congrats! Your existing project has successfully updated!{" "} @@ -433,8 +428,9 @@ const JoinView = () => { Project Already Exists - The project already exists within the scope. You can access the existing dashboard using the following link:{" "} - )} diff --git a/src/components/MoreInfo.jsx b/src/components/MoreInfo.jsx new file mode 100644 index 0000000..6a525b6 --- /dev/null +++ b/src/components/MoreInfo.jsx @@ -0,0 +1,28 @@ +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible" +import { Button } from "@/components/ui/button" +import { ChevronDown, ChevronUp } from "lucide-react" + +const MoreInfo = ({ showMoreInfo, setShowMoreInfo }) => { + return ( + + + + + +
+

+ If you already updated the info.yml, wait 5 minutes and try again. This is due to GitHub cache. +

+
+
+
+ ) +} + +export default MoreInfo diff --git a/src/components/ui/collapsible.jsx b/src/components/ui/collapsible.jsx new file mode 100644 index 0000000..a23e7a2 --- /dev/null +++ b/src/components/ui/collapsible.jsx @@ -0,0 +1,9 @@ +import * as CollapsiblePrimitive from "@radix-ui/react-collapsible" + +const Collapsible = CollapsiblePrimitive.Root + +const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger + +const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent + +export { Collapsible, CollapsibleTrigger, CollapsibleContent } From 9784503760e4b68706c000e2ad6e45b835508f0f Mon Sep 17 00:00:00 2001 From: JaviFdez7 Date: Fri, 31 Jan 2025 20:14:50 +0100 Subject: [PATCH 6/9] style: update button hover background color --- src/components/MoreInfo.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/MoreInfo.jsx b/src/components/MoreInfo.jsx index 6a525b6..ab18b73 100644 --- a/src/components/MoreInfo.jsx +++ b/src/components/MoreInfo.jsx @@ -8,14 +8,14 @@ const MoreInfo = ({ showMoreInfo, setShowMoreInfo }) => { -
+

If you already updated the info.yml, wait 5 minutes and try again. This is due to GitHub cache.

From a57c4f6e3a4333cc0a1209bbc4a1ea821890cddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Otero=20Barbas=C3=A1n?= Date: Fri, 31 Jan 2025 21:32:35 +0100 Subject: [PATCH 7/9] feat: add environment variable support in Dockerfile and update .env.example --- .env.example | 2 ++ Dockerfile | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/.env.example b/.env.example index d2716fc..ca3b03d 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,5 @@ +# WARNING: Rememeber to add vars to Dockerfile and infrastructure docker-compose.yml if new vars are added + PORT=6001 VITE_SCOPE_URL=http://localhost:5700 VITE_REGISTRY_URL=http://localhost:5400 diff --git a/Dockerfile b/Dockerfile index d780331..b2ec831 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,29 @@ # Stage 1: Build the React application FROM node:20-alpine AS build WORKDIR /app + +# Set build arguments +ARG VITE_SCOPE_URL +ARG VITE_REGISTRY_URL +ARG VITE_INTERNAL_ASSETS_URL +ARG VITE_INTERNAL_SCOPE_URL +ARG VITE_RENDER_URL +ARG VITE_DASHBOARD_URL +ARG VITE_REPORTER_URL +ARG VITE_DIRECTOR_URL +ARG VITE_ASSETS_URL + +# Pass build arguments as environment variables +ENV VITE_SCOPE_URL=$VITE_SCOPE_URL +ENV VITE_REGISTRY_URL=$VITE_REGISTRY_URL +ENV VITE_INTERNAL_ASSETS_URL=$VITE_INTERNAL_ASSETS_URL +ENV VITE_INTERNAL_SCOPE_URL=$VITE_INTERNAL_SCOPE_URL +ENV VITE_RENDER_URL=$VITE_RENDER_URL +ENV VITE_DASHBOARD_URL=$VITE_DASHBOARD_URL +ENV VITE_REPORTER_URL=$VITE_REPORTER_URL +ENV VITE_DIRECTOR_URL=$VITE_DIRECTOR_URL +ENV VITE_ASSETS_URL=$VITE_ASSETS_URL + COPY package*.json ./ RUN npm install COPY . . From 88a094fa1b4815b207796a098b338bf5e13d7480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Otero=20Barbas=C3=A1n?= Date: Fri, 28 Feb 2025 14:34:12 +0100 Subject: [PATCH 8/9] feat: load configuration from public/config.json and update environment variable handling --- .env.example | 15 +++------------ Dockerfile | 22 ---------------------- README.md | 2 ++ public/config.json | 12 ++++++++++++ src/components/JoinView.jsx | 37 +++++++++++++++++++++++-------------- src/config.js | 30 ++++++++++++++++++++---------- 6 files changed, 60 insertions(+), 58 deletions(-) create mode 100644 public/config.json diff --git a/.env.example b/.env.example index ca3b03d..62aa78b 100644 --- a/.env.example +++ b/.env.example @@ -1,12 +1,3 @@ -# WARNING: Rememeber to add vars to Dockerfile and infrastructure docker-compose.yml if new vars are added - -PORT=6001 -VITE_SCOPE_URL=http://localhost:5700 -VITE_REGISTRY_URL=http://localhost:5400 -VITE_INTERNAL_ASSETS_URL=http://host.docker.internal:5200 -VITE_INTERNAL_SCOPE_URL=http://host.docker.internal:5700 -VITE_RENDER_URL=http://localhost:5100 -VITE_DASHBOARD_URL=http://localhost:5600 -VITE_REPORTER_URL=http://localhost:5300 -VITE_DIRECTOR_URL=http://localhost:5800 -VITE_ASSETS_URL=http://localhost:5200 \ No newline at end of file +# NOTE: Variables in /public/config.json are available to the client. Remember to add variables there if needed. +# Only framework configuration variables should be added here. +PORT=6001 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b2ec831..c3aaf9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,28 +2,6 @@ FROM node:20-alpine AS build WORKDIR /app -# Set build arguments -ARG VITE_SCOPE_URL -ARG VITE_REGISTRY_URL -ARG VITE_INTERNAL_ASSETS_URL -ARG VITE_INTERNAL_SCOPE_URL -ARG VITE_RENDER_URL -ARG VITE_DASHBOARD_URL -ARG VITE_REPORTER_URL -ARG VITE_DIRECTOR_URL -ARG VITE_ASSETS_URL - -# Pass build arguments as environment variables -ENV VITE_SCOPE_URL=$VITE_SCOPE_URL -ENV VITE_REGISTRY_URL=$VITE_REGISTRY_URL -ENV VITE_INTERNAL_ASSETS_URL=$VITE_INTERNAL_ASSETS_URL -ENV VITE_INTERNAL_SCOPE_URL=$VITE_INTERNAL_SCOPE_URL -ENV VITE_RENDER_URL=$VITE_RENDER_URL -ENV VITE_DASHBOARD_URL=$VITE_DASHBOARD_URL -ENV VITE_REPORTER_URL=$VITE_REPORTER_URL -ENV VITE_DIRECTOR_URL=$VITE_DIRECTOR_URL -ENV VITE_ASSETS_URL=$VITE_ASSETS_URL - COPY package*.json ./ RUN npm install COPY . . diff --git a/README.md b/README.md index 5104300..76e169c 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ Before installing dependencies, configure the environment variables. Copy the `. cp .env.example .env ``` +Additionally, update the `config.json` file in the `public` directory with the necessary configuration values. + ### Installation To get started with the project, first install the necessary dependencies: diff --git a/public/config.json b/public/config.json new file mode 100644 index 0000000..70b58ea --- /dev/null +++ b/public/config.json @@ -0,0 +1,12 @@ +{ + "scopeUrl": "http://localhost:5700", + "registryUrl": "http://localhost:5400", + "internalAssetsUrl": "http://host.docker.internal:5200", + "internalScopeUrl": "http://host.docker.internal:5700", + "renderUrl": "http://localhost:5100", + "dashboardUrl": "http://localhost:5600", + "reporterUrl": "http://localhost:5300", + "directorUrl": "http://localhost:5800", + "assetsUrl": "http://localhost:5200", + "info": "config loaded from default /public/config.json" +} diff --git a/src/components/JoinView.jsx b/src/components/JoinView.jsx index f1d298e..1e9a45f 100644 --- a/src/components/JoinView.jsx +++ b/src/components/JoinView.jsx @@ -1,6 +1,6 @@ "use client" -import React, { useEffect, useState } from "react" +import { useEffect, useState } from "react" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" @@ -8,7 +8,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@ import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert" import { CheckCircle, AlertCircle } from "lucide-react" import MoreInfo from "@/components/MoreInfo" -import config from "../config" +import config, { loadConfig } from "../config" import DashboardBadge from './DashboardBadge'; const JoinView = () => { @@ -25,14 +25,19 @@ const JoinView = () => { const [showMoreInfo, setShowMoreInfo] = useState(false); useEffect(() => { - fetch(`${config.scopeUrl}/api/v1/scopes/development/courses`) - .then((response) => response.json()) - .then((data) => { - console.log("CONFIG OBJECT: ", JSON.stringify(config, null, 2)) - if (!data.scope) throw new Error("No courses found in response") - setCourses(data.scope.filter((course) => !course.hidden)) - }) - .catch((error) => console.error("Error getting the courses:", error)) + const initializeConfig = async () => { + await loadConfig(); + fetch(`${config.scopeUrl}/api/v1/scopes/development/courses`) + .then((response) => response.json()) + .then((data) => { + console.log("CONFIG OBJECT: ", JSON.stringify(config, null, 2)) + if (!data.scope) throw new Error("No courses found in response") + setCourses(data.scope.filter((course) => !course.hidden)) + }) + .catch((error) => console.error("Error getting the courses:", error)) + }; + + initializeConfig(); }, []) const check = () => { @@ -108,7 +113,11 @@ const JoinView = () => { .then(response => response.json()) .then(data => { const courseTemplateId = data.scope.templateId; - console.log(`Register - Fetching TPA template ${courseTemplateId} ...`); + if (!courseTemplateId) { + alert("WARNING:\nPlease contact your admin with the following information:\n\n1. The course does not have an agreement template.\n2. Agreement could not be generated and needs manual creation in the TPA-manager service.\n3. Once the agreement is created, the calculations for agreement adherence must be manually activated in the TPA-manager service."); + return; + } + console.log(`Register - Fetching TPA template with id ${courseTemplateId}, URL: ${config.registryUrl}/api/v6/templates/${courseTemplateId}`); fetch(`${config.registryUrl}/api/v6/templates/${courseTemplateId}`) .then(response => response.text()) .then(data => { @@ -135,7 +144,7 @@ const JoinView = () => { 'Content-Type': 'application/json' }, body: JSON.stringify(tpaOrdered) - }).then(async response => { + }).then(async () => { console.log('Register - Agreement created.'); if(selectedCourse.autoRun){ await activateAutomaticTPACalculations(selectedCourse, projectScope); @@ -304,7 +313,7 @@ const JoinView = () => {
- Don't have an info.yml file?{" "} + Don't have an info.yml file?{" "} Create one now! @@ -428,7 +437,7 @@ const JoinView = () => { Project Already Exists - The project already exists within the scope and the info.yml don't have changes.{" "} + The project already exists within the scope and the info.yml don't have changes.{" "} diff --git a/src/config.js b/src/config.js index ee02dc1..fbd4bde 100644 --- a/src/config.js +++ b/src/config.js @@ -1,13 +1,23 @@ -const config = { - scopeUrl: import.meta.env.VITE_SCOPE_URL || 'http://localhost:5700', // 'https://scopes.bluejay.governify.io' - registryUrl: import.meta.env.VITE_REGISTRY_URL || 'http://localhost:5400', // 'https://registry.bluejay.governify.io' - internalAssetsUrl: import.meta.env.VITE_INTERNAL_ASSETS_URL || 'http://host.docker.internal:5200', // 'http://bluejay-assets-manager' - internalScopeUrl: import.meta.env.VITE_INTERNAL_SCOPE_URL || 'http://host.docker.internal:5700', // 'http://bluejay-scope-manager' - renderUrl: import.meta.env.VITE_RENDER_URL || 'http://localhost:5100', // 'https://render.bluejay.governify.io' - dashboardUrl: import.meta.env.VITE_DASHBOARD_URL || 'http://localhost:5600', // 'https://dashboard.bluejay.governify.io' - reporterUrl: import.meta.env.VITE_REPORTER_URL || 'http://localhost:5300', // 'https://reporter.bluejay.governify.io' - directorUrl: import.meta.env.VITE_DIRECTOR_URL || 'http://localhost:5800', // 'https://director.bluejay.governify.io' - assetsUrl: import.meta.env.VITE_ASSETS_URL || 'http://localhost:5200', // 'https://assets.bluejay.governify.io' +let config = { + scopeUrl: 'http://localhost:5700', + registryUrl: 'http://localhost:5400', + internalAssetsUrl: 'http://host.docker.internal:5200', + internalScopeUrl: 'http://host.docker.internal:5700', + renderUrl: 'http://localhost:5100', + dashboardUrl: 'http://localhost:5600', + reporterUrl: 'http://localhost:5300', + directorUrl: 'http://localhost:5800', + assetsUrl: 'http://localhost:5200' +}; + +export const loadConfig = async () => { + try { + const response = await fetch('/config.json'); + const data = await response.json(); + config = { ...config, ...data }; + } catch (error) { + console.error('Error loading config:', error); + } }; export default config; \ No newline at end of file From 3b9ac8a290fe1a31bd5e7b173a8322230edda7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Fern=C3=A1ndez=20Castillo?= <100673872+JaviFdez7@users.noreply.github.com> Date: Sun, 21 Sep 2025 23:42:19 +0200 Subject: [PATCH 9/9] feat: update dependencies and add WorkInProgressView component --- package-lock.json | 1856 ++----------------------- package.json | 29 +- src/components/App.jsx | 2 + src/components/JoinView.jsx | 15 +- src/components/Navbar.jsx | 2 +- src/components/WorkInProgressView.jsx | 9 + 6 files changed, 112 insertions(+), 1801 deletions(-) create mode 100644 src/components/WorkInProgressView.jsx diff --git a/package-lock.json b/package-lock.json index 07c0526..fd4b69a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,59 +8,32 @@ "name": "join-bluejay", "version": "2.0.0", "dependencies": { - "@hookform/resolvers": "^3.10.0", - "@radix-ui/react-accordion": "^1.2.2", - "@radix-ui/react-avatar": "^1.1.2", "@radix-ui/react-checkbox": "^1.1.3", "@radix-ui/react-collapsible": "^1.1.2", "@radix-ui/react-dialog": "^1.1.5", - "@radix-ui/react-dropdown-menu": "^2.1.4", "@radix-ui/react-label": "^2.1.1", - "@radix-ui/react-scroll-area": "^1.2.2", "@radix-ui/react-select": "^2.1.5", "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-switch": "^1.1.2", "@radix-ui/react-tabs": "^1.1.2", - "@radix-ui/react-toast": "^1.2.4", - "@radix-ui/react-tooltip": "^1.1.6", - "@shadcn/ui": "^0.0.4", "@vitejs/plugin-react": "^4.3.4", "axios": "^1.7.9", - "button": "^1.1.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "date-fns": "^4.1.0", "dotenv": "^16.4.7", - "framer-motion": "^11.16.0", - "leaflet": "^1.9.4", "lucide-react": "^0.469.0", "react": "^18.3.1", - "react-chartjs-2": "^5.3.0", "react-dom": "^18.3.1", - "react-hook-form": "^7.54.2", "react-router-dom": "^7.1.1", - "recharts": "^2.15.0", - "sonner": "^1.7.1", "tailwind-merge": "^2.6.0", "tailwindcss-animate": "^1.0.7", - "yamljs": "^0.3.0", - "zod": "^3.24.1" + "yamljs": "^0.3.0" }, "devDependencies": { "@eslint/js": "^9.17.0", - "@types/node": "^22.10.5", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", - "@vitejs/plugin-react-swc": "^3.5.0", - "autoprefixer": "^10.4.20", - "eslint": "^9.17.0", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.14.0", - "pnpm": "^9.15.3", - "postcss": "^8.4.49", - "rollup": "^4.30.1", "tailwindcss": "^3.4.17", "vite": "^6.0.7" } @@ -299,18 +272,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", - "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/template": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", @@ -771,6 +732,7 @@ "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -790,6 +752,7 @@ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -803,6 +766,7 @@ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -813,6 +777,7 @@ "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@eslint/object-schema": "^2.1.5", "debug": "^4.3.1", @@ -828,6 +793,7 @@ "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.15" }, @@ -841,6 +807,7 @@ "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -865,6 +832,7 @@ "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -888,6 +856,7 @@ "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -898,6 +867,7 @@ "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@eslint/core": "^0.10.0", "levn": "^0.4.1" @@ -944,21 +914,13 @@ "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", "license": "MIT" }, - "node_modules/@hookform/resolvers": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz", - "integrity": "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==", - "license": "MIT", - "peerDependencies": { - "react-hook-form": "^7.0.0" - } - }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=18.18.0" } @@ -969,6 +931,7 @@ "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" @@ -983,6 +946,7 @@ "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=18.18" }, @@ -997,6 +961,7 @@ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=12.22" }, @@ -1011,6 +976,7 @@ "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=18.18" }, @@ -1084,13 +1050,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@kurkle/color": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", - "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", - "license": "MIT", - "peer": true - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1148,37 +1107,6 @@ "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", "license": "MIT" }, - "node_modules/@radix-ui/react-accordion": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.2.tgz", - "integrity": "sha512-b1oh54x4DMCdGsB4/7ahiSrViXxaBwRPotiZNnYXjLha9vfuURSAZErki6qjDoSIV0eXx5v57XnTGVtGwnfp2g==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collapsible": "1.1.2", - "@radix-ui/react-collection": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-arrow": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", @@ -1202,32 +1130,6 @@ } } }, - "node_modules/@radix-ui/react-avatar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.2.tgz", - "integrity": "sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-checkbox": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.3.tgz", @@ -1422,35 +1324,6 @@ } } }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.5.tgz", - "integrity": "sha512-50ZmEFL1kOuLalPKHrLWvPFMons2fGx9TqQCWlPwDVpbAnaUJ1g4XNcKqFNMQymYU0kKWR4MDDi+9vUQBGFgcQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-menu": "2.1.5", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-focus-guards": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", @@ -1532,46 +1405,6 @@ } } }, - "node_modules/@radix-ui/react-menu": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.5.tgz", - "integrity": "sha512-uH+3w5heoMJtqVCgYOtYVMECk1TOrkUn0OG0p5MqXC0W2ppcuVeESbou8PTHoqAjbdTEK19AGXBWcEtR5WpEQg==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.4", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.1", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.1", - "@radix-ui/react-portal": "1.1.3", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-roving-focus": "1.1.1", - "@radix-ui/react-slot": "1.1.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-popper": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", @@ -1706,37 +1539,6 @@ } } }, - "node_modules/@radix-ui/react-scroll-area": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.2.tgz", - "integrity": "sha512-EFI1N/S3YxZEW/lJ/H1jY3njlvTd8tBmgKEn4GHi51+aMm94i6NmAJstsm5cu3yJwYqYc93gpCPm21FeAbFk6g==", - "license": "MIT", - "dependencies": { - "@radix-ui/number": "1.1.0", - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-select": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.5.tgz", @@ -1798,35 +1600,6 @@ } } }, - "node_modules/@radix-ui/react-switch": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.2.tgz", - "integrity": "sha512-zGukiWHjEdBCRyXvKR6iXAQG6qXm2esuAD6kDOi9Cn+1X6ev3ASo4+CsYaD6Fov9r/AQFekqnD/7+V0Cs6/98g==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-use-size": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-tabs": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", @@ -1857,74 +1630,6 @@ } } }, - "node_modules/@radix-ui/react-toast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.5.tgz", - "integrity": "sha512-ZzUsAaOx8NdXZZKcFNDhbSlbsCUy8qQWmzTdgrlrhhZAOx2ofLtKrBDW9fkqhFvXgmtv560Uj16pkLkqML7SHA==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.4", - "@radix-ui/react-portal": "1.1.3", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tooltip": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.7.tgz", - "integrity": "sha512-ss0s80BC0+g0+Zc53MvilcnTYSOi4mSuFWBPYPuTOFGjx+pUU+ZrmamMNwS56t8MTFlniA5ocjd4jYm/CdhbOg==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.4", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.1", - "@radix-ui/react-portal": "1.1.3", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.1", - "@radix-ui/react-slot": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", @@ -2318,263 +2023,6 @@ "win32" ] }, - "node_modules/@shadcn/ui": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@shadcn/ui/-/ui-0.0.4.tgz", - "integrity": "sha512-0dtu/5ApsOZ24qgaZwtif8jVwqol7a4m1x5AxPuM1k5wxhqU7t/qEfBGtaSki1R8VlbTQfCj5PAlO45NKCa7Gg==", - "license": "MIT", - "dependencies": { - "chalk": "5.2.0", - "commander": "^10.0.0", - "execa": "^7.0.0", - "fs-extra": "^11.1.0", - "node-fetch": "^3.3.0", - "ora": "^6.1.2", - "prompts": "^2.4.2", - "zod": "^3.20.2" - }, - "bin": { - "ui": "dist/index.js" - } - }, - "node_modules/@shadcn/ui/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@swc/core": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.9.tgz", - "integrity": "sha512-MQ97YSXu2oibzm7wi4GNa7hhndjLuVt/lmO2sq53+P37oZmyg/JQ/IYYtSiC6UGK3+cHoiVAykrK+glxLjJbag==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.17" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.10.9", - "@swc/core-darwin-x64": "1.10.9", - "@swc/core-linux-arm-gnueabihf": "1.10.9", - "@swc/core-linux-arm64-gnu": "1.10.9", - "@swc/core-linux-arm64-musl": "1.10.9", - "@swc/core-linux-x64-gnu": "1.10.9", - "@swc/core-linux-x64-musl": "1.10.9", - "@swc/core-win32-arm64-msvc": "1.10.9", - "@swc/core-win32-ia32-msvc": "1.10.9", - "@swc/core-win32-x64-msvc": "1.10.9" - }, - "peerDependencies": { - "@swc/helpers": "*" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.9.tgz", - "integrity": "sha512-XTHLtijFervv2B+i1ngM993umhSj9K1IeMomvU/Db84Asjur2XmD4KXt9QPnGDRFgv2kLSjZ+DDL25Qk0f4r+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.9.tgz", - "integrity": "sha512-bi3el9/FV/la8HIsolSjeDar+tM7m9AmSF1w7X6ZByW2qgc4Z1tmq0A4M4H9aH3TfHesZbfq8hgaNtc2/VtzzQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.9.tgz", - "integrity": "sha512-xsLHV02S+RTDuI+UJBkA2muNk/s0ETRpoc1K/gNt0i8BqTurPYkrvGDDALN9+leiUPydHvZi9P1qdExbgUJnXw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.9.tgz", - "integrity": "sha512-41hJgPoGhIa12U6Tud+yLF/m64YA3mGut3TmBEkj2R7rdJdE0mljdtR0tf4J2RoQaWZPPi0DBSqGdROiAEx9dg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.9.tgz", - "integrity": "sha512-DUMRhl49b9r7bLg9oNzCdW4lLcDJKrRBn87Iq5APPvixsm1auGnsVQycGkQcDDKvVllxIFSbmCYzjagx3l8Hnw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.9.tgz", - "integrity": "sha512-xW0y88vQvmzYo3Gn7yFnY03TfHMwuca4aFH3ZmhwDNOYHmTOi6fmhAkg/13F/NrwjMYO+GnF5uJTjdjb3B6tdQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.9.tgz", - "integrity": "sha512-jYs32BEx+CPVuxN6NdsWEpdehjnmAag25jyJzwjQx+NCGYwHEV3bT5y8TX4eFhaVB1rafmqJOlYQPs4+MSyGCg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.9.tgz", - "integrity": "sha512-Uhh5T3Fq3Nyom96Bm3ACBNASH3iqNc76in7ewZz8PooUqeTIO8aZpsghnncjctRNE9T819/8btpiFIhHo3sKtg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.9.tgz", - "integrity": "sha512-bD5BpbojEsDfrAvT+1qjQPf5RCKLg4UL+3Uwm019+ZR02hd8qO538BlOnQdOqRqccu+75DF6aRglQ7AJ24Cs0Q==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.10.9", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.9.tgz", - "integrity": "sha512-NwkuUNeBBQnAaXVvcGw8Zr6RR8kylyjFUnlYZZ3G0QkQZ4rYLXYTafAmiRjrfzgVb0LcMF/sBzJvGOk7SwtIDg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/types": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", - "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -2622,69 +2070,6 @@ "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "license": "MIT" }, - "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-shape": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", - "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2696,14 +2081,16 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/node": { "version": "22.10.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", - "devOptional": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "undici-types": "~6.20.0" } @@ -2712,15 +2099,17 @@ "version": "15.7.14", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "devOptional": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/@types/react": { "version": "18.3.18", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", - "devOptional": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -2730,8 +2119,9 @@ "version": "18.3.5", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", - "devOptional": true, "license": "MIT", + "optional": true, + "peer": true, "peerDependencies": { "@types/react": "^18.0.0" } @@ -2755,25 +2145,13 @@ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.2.tgz", - "integrity": "sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@swc/core": "^1.7.26" - }, - "peerDependencies": { - "vite": "^4 || ^5 || ^6" - } - }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2787,6 +2165,7 @@ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", + "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -2797,6 +2176,7 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2865,7 +2245,8 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "Python-2.0" + "license": "Python-2.0", + "peer": true }, "node_modules/aria-hidden": { "version": "1.2.4", @@ -3031,44 +2412,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "dev": true, - "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" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "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", @@ -3102,26 +2445,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -3134,17 +2457,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3199,36 +2511,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/button": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/button/-/button-1.1.1.tgz", - "integrity": "sha512-/eICyCdXkem6L3i02jNfo7CgY0lDtELov2IhiTAUkkl3kTnnr/Jee0Fjnj4TuLwl8wkdtplZaWWXMCeowmkmpA==", - "license": "MIT" - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -3285,6 +2567,7 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -3324,6 +2607,7 @@ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3335,19 +2619,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chart.js": { - "version": "4.4.7", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.7.tgz", - "integrity": "sha512-pwkcKfdzTMAU/+jNosKhNL2bHtJc/sSmYgVbuGTEDhzkrhmyihmP7vUc/5ZK9WopidMDHNe3Wm7jOd/WhuHWuw==", - "license": "MIT", - "peer": true, - "dependencies": { - "@kurkle/color": "^0.3.0" - }, - "engines": { - "pnpm": ">=8" - } - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -3396,42 +2667,6 @@ "url": "https://polar.sh/cva" } }, - "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -3471,15 +2706,6 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3531,137 +2757,9 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "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==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "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==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "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==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "license": "MIT", - "engines": { - "node": ">= 12" - } + "optional": true, + "peer": true }, "node_modules/data-view-buffer": { "version": "1.0.2", @@ -3717,16 +2815,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -3744,30 +2832,13 @@ } } }, - "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==", - "license": "MIT" - }, "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, - "license": "MIT" - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "peer": true }, "node_modules/define-data-property": { "version": "1.1.4", @@ -3845,16 +2916,6 @@ "node": ">=0.10.0" } }, - "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==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, "node_modules/dotenv": { "version": "16.4.7", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", @@ -4126,6 +3187,7 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -4139,6 +3201,7 @@ "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -4255,6 +3318,7 @@ "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -4272,6 +3336,7 @@ "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -4285,6 +3350,7 @@ "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", @@ -4303,6 +3369,7 @@ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -4316,6 +3383,7 @@ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -4343,50 +3411,13 @@ "node": ">=0.10.0" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, - "license": "MIT" - }, - "node_modules/fast-equals": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz", - "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==", "license": "MIT", - "engines": { - "node": ">=6.0.0" - } + "peer": true }, "node_modules/fast-glob": { "version": "3.3.3", @@ -4421,14 +3452,16 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "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, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/fastq": { "version": "1.18.0", @@ -4439,35 +3472,13 @@ "reusify": "^1.0.4" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "flat-cache": "^4.0.0" }, @@ -4493,6 +3504,7 @@ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4510,6 +3522,7 @@ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -4523,7 +3536,8 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/follow-redirects": { "version": "1.15.9", @@ -4603,73 +3617,6 @@ "node": ">= 6" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/framer-motion": { - "version": "11.18.2", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", - "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", - "license": "MIT", - "dependencies": { - "motion-dom": "^11.18.1", - "motion-utils": "^11.18.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "@emotion/is-prop-valid": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/is-prop-valid": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4787,18 +3734,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -4916,12 +3851,6 @@ "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==", - "license": "ISC" - }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -4941,6 +3870,7 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -5015,41 +3945,13 @@ "node": ">= 0.4" } }, - "node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -5060,6 +3962,7 @@ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -5077,6 +3980,7 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.8.19" } @@ -5113,15 +4017,6 @@ "node": ">= 0.4" } }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -5333,18 +4228,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -5432,18 +4315,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", @@ -5495,18 +4366,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", @@ -5620,6 +4479,7 @@ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "argparse": "^2.0.1" }, @@ -5644,21 +4504,24 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "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, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json5": { "version": "2.2.3", @@ -5672,18 +4535,6 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -5706,31 +4557,18 @@ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "json-buffer": "3.0.1" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/leaflet": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", - "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", - "license": "BSD-2-Clause" - }, "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, "license": "MIT", + "peer": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -5763,6 +4601,7 @@ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -5773,46 +4612,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", "license": "MIT", - "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "peer": true }, "node_modules/loose-envify": { "version": "1.4.0", @@ -5854,12 +4660,6 @@ "node": ">= 0.4" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -5903,18 +4703,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5936,21 +4724,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/motion-dom": { - "version": "11.18.1", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", - "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", - "license": "MIT", - "dependencies": { - "motion-utils": "^11.18.1" - } - }, - "node_modules/motion-utils": { - "version": "11.18.1", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", - "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==", - "license": "MIT" - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5979,57 +4752,21 @@ } ], "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -6045,43 +4782,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6206,27 +4906,13 @@ "wrappy": "1" } }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "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, "license": "MIT", + "peer": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -6239,41 +4925,6 @@ "node": ">= 0.8.0" } }, - "node_modules/ora": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", - "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", - "license": "MIT", - "dependencies": { - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -6298,6 +4949,7 @@ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -6314,6 +4966,7 @@ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -6336,6 +4989,7 @@ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "callsites": "^3.0.0" }, @@ -6349,6 +5003,7 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -6435,23 +5090,6 @@ "node": ">= 6" } }, - "node_modules/pnpm": { - "version": "9.15.4", - "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-9.15.4.tgz", - "integrity": "sha512-stwg4vxys+GISEWbNzWaMgZGY+VielHkx0ssKd2OjgSRSDw6u0B4nP1Xi/Ni+2uoJhsF8Dh9dnku1uI+o7G2oA==", - "dev": true, - "license": "MIT", - "bin": { - "pnpm": "bin/pnpm.cjs", - "pnpx": "bin/pnpx.cjs" - }, - "engines": { - "node": ">=18.12" - }, - "funding": { - "url": "https://opencollective.com/pnpm" - } - }, "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", @@ -6631,27 +5269,16 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8.0" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -6671,6 +5298,7 @@ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -6707,16 +5335,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-chartjs-2": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.3.0.tgz", - "integrity": "sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==", - "license": "MIT", - "peerDependencies": { - "chart.js": "^4.1.1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -6730,26 +5348,11 @@ "react": "^18.3.1" } }, - "node_modules/react-hook-form": { - "version": "7.54.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", - "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-hook-form" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18 || ^19" - } - }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, "license": "MIT" }, "node_modules/react-refresh": { @@ -6848,21 +5451,6 @@ "react-dom": ">=18" } }, - "node_modules/react-smooth": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", - "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", - "license": "MIT", - "dependencies": { - "fast-equals": "^5.0.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, "node_modules/react-style-singleton": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", @@ -6885,22 +5473,6 @@ } } }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -6910,20 +5482,6 @@ "pify": "^2.3.0" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -6936,44 +5494,6 @@ "node": ">=8.10.0" } }, - "node_modules/recharts": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.0.tgz", - "integrity": "sha512-cIvMxDfpAmqAmVgc4yb7pgm/O1tmmkl/CjrvXuW+62/+7jj/iF9Ykm+hb/UJt42TREHMyd3gb+pkgoa2MxgDIw==", - "license": "MIT", - "dependencies": { - "clsx": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.21", - "react-is": "^18.3.1", - "react-smooth": "^4.0.0", - "recharts-scale": "^0.4.4", - "tiny-invariant": "^1.3.1", - "victory-vendor": "^36.6.8" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", - "license": "MIT", - "dependencies": { - "decimal.js-light": "^2.4.1" - } - }, - "node_modules/recharts/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "license": "MIT" - }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -6997,12 +5517,6 @@ "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==", - "license": "MIT" - }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -7048,50 +5562,11 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=4" } }, - "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -7183,26 +5658,6 @@ "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", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -7408,28 +5863,6 @@ "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", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/sonner": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.7.2.tgz", - "integrity": "sha512-zMbseqjrOzQD1a93lxahm+qMGxWovdMxBlkTbbnZdNqVLt4j+amF9PQxUCL32WfztOFt9t9ADYkejAL3jF9iNA==", - "license": "MIT", - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", - "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -7445,30 +5878,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, - "node_modules/stdin-discarder": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", - "license": "MIT", - "dependencies": { - "bl": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -7663,24 +6072,13 @@ "node": ">=8" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -7725,6 +6123,7 @@ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7841,12 +6240,6 @@ "node": ">=0.8" } }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7883,6 +6276,7 @@ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -7991,17 +6385,9 @@ "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } + "optional": true, + "peer": true }, "node_modules/update-browserslist-db": { "version": "1.1.2", @@ -8039,6 +6425,7 @@ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -8092,28 +6479,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, - "node_modules/victory-vendor": { - "version": "36.9.2", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", - "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, "node_modules/vite": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", @@ -8185,24 +6550,6 @@ } } }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8312,6 +6659,7 @@ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8478,21 +6826,13 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } } } diff --git a/package.json b/package.json index 10aab53..98c077d 100644 --- a/package.json +++ b/package.json @@ -11,59 +11,32 @@ "add": "npx shadcn@latest add" }, "dependencies": { - "@hookform/resolvers": "^3.10.0", - "@radix-ui/react-accordion": "^1.2.2", - "@radix-ui/react-avatar": "^1.1.2", "@radix-ui/react-checkbox": "^1.1.3", "@radix-ui/react-collapsible": "^1.1.2", "@radix-ui/react-dialog": "^1.1.5", - "@radix-ui/react-dropdown-menu": "^2.1.4", "@radix-ui/react-label": "^2.1.1", - "@radix-ui/react-scroll-area": "^1.2.2", "@radix-ui/react-select": "^2.1.5", "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-switch": "^1.1.2", "@radix-ui/react-tabs": "^1.1.2", - "@radix-ui/react-toast": "^1.2.4", - "@radix-ui/react-tooltip": "^1.1.6", - "@shadcn/ui": "^0.0.4", "@vitejs/plugin-react": "^4.3.4", "axios": "^1.7.9", - "button": "^1.1.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "date-fns": "^4.1.0", "dotenv": "^16.4.7", - "framer-motion": "^11.16.0", - "leaflet": "^1.9.4", "lucide-react": "^0.469.0", "react": "^18.3.1", - "react-chartjs-2": "^5.3.0", "react-dom": "^18.3.1", - "react-hook-form": "^7.54.2", "react-router-dom": "^7.1.1", - "recharts": "^2.15.0", - "sonner": "^1.7.1", "tailwind-merge": "^2.6.0", "tailwindcss-animate": "^1.0.7", - "yamljs": "^0.3.0", - "zod": "^3.24.1" + "yamljs": "^0.3.0" }, "devDependencies": { "@eslint/js": "^9.17.0", - "@types/node": "^22.10.5", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", - "@vitejs/plugin-react-swc": "^3.5.0", - "autoprefixer": "^10.4.20", - "eslint": "^9.17.0", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.14.0", - "pnpm": "^9.15.3", - "postcss": "^8.4.49", - "rollup": "^4.30.1", "tailwindcss": "^3.4.17", "vite": "^6.0.7" } diff --git a/src/components/App.jsx b/src/components/App.jsx index d06967e..90658ed 100644 --- a/src/components/App.jsx +++ b/src/components/App.jsx @@ -4,6 +4,7 @@ import { Routes, Route, BrowserRouter } from 'react-router-dom'; import JoinView from './JoinView'; import ViewWrapper from './ViewWrapper'; import WizardView from './WizardView'; +import WorkInProgressView from './WorkInProgressView.jsx'; const App = () => { return ( @@ -11,6 +12,7 @@ const App = () => { } /> } /> + } /> ); diff --git a/src/components/JoinView.jsx b/src/components/JoinView.jsx index 1e9a45f..8db8426 100644 --- a/src/components/JoinView.jsx +++ b/src/components/JoinView.jsx @@ -311,20 +311,7 @@ const JoinView = () => { />
- -
- Already have a registered project? - - Get your own badge here! - -
+ {result === "success" && ( diff --git a/src/components/Navbar.jsx b/src/components/Navbar.jsx index 1e6912b..8113f0b 100644 --- a/src/components/Navbar.jsx +++ b/src/components/Navbar.jsx @@ -22,7 +22,7 @@ const Navbar = () => { {/* Wizard */} - + Wizard diff --git a/src/components/WorkInProgressView.jsx b/src/components/WorkInProgressView.jsx new file mode 100644 index 0000000..d604839 --- /dev/null +++ b/src/components/WorkInProgressView.jsx @@ -0,0 +1,9 @@ +import React from 'react'; + +const WorkInProgressView = () => ( +
+ Work in Progress +
+); + +export default WorkInProgressView;